gpt4 book ai didi

java - picasso 图书馆加载我的图片太慢了?

转载 作者:行者123 更新时间:2023-11-30 12:02:29 25 4
gpt4 key购买 nike

我正在使用 Picasso 在 RecyclerView 中显示许多小的 ImageView。当我单击它们时,ImageView 会更改其图像 500 毫秒,并在 500 毫秒的处理程序结束时将其更改回来。

这是代码:

    Picasso.get().load(imageResources[position]).into(holder1.itemImageView);

holder1.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View v) {
final Context context = v.getContext();
Picasso.get().load(pressedResource[position]).into(holder1.itemImageView);
new Handler().postDelayed(new Runnable() {
public void run() {
Picasso.get().load(imageResources[position]).into(holder1.itemImageView);
}
}, 500);

new Thread(new Runnable() {
@Override
public void run() {


EventHandlerClass.startMediaPlayer(v, soundID);
}
}).start();

}
});

我使用 Picasso 来防止我的应用出现内存不足崩溃。图像消失大约 10 毫秒,然后变为另一个图像,在 500 毫秒后它再次消失,然后变回默认图像。它只会在我第一次单击其中一个图像时消失,之后它就不会消失。我认为发生这种情况是因为 picasso 加载图像的速度太慢。有没有办法在我点击按钮时先加载图像并显示它?

这是一个 GIF 动图,展示了它的样子:https://media.giphy.com/media/STlGbpXvT8B9iBvnQS/giphy.gif在这种情况下,它只消失了一次,但有时点击一下它就会消失两次。

图像都是 200x200 和大约 8kb。格式为.WEBP

我怎样才能避免这种情况?

最佳答案

想法是等待回调,然后将图像设置到 ImageView 中。这是通过使用 CallbackListener 实现的。

Picasso.get().load(imageResources[position]).into(holder1.itemImageView);

holder1.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View v) {
final Context context = v.getContext();
Picasso.get().load(pressedResource[position]).into(holder1.itemImageViewnew com.squareup.picasso.Callback() {

@Override
public void onSuccess() {
new Handler().postDelayed(new Runnable() {
public void run() {
Picasso.get().load(imageResources[position]).into(holder1.itemImageView);
}
}, 500);

new Thread(new Runnable() {
@Override
public void run() {
EventHandlerClass.startMediaPlayer(v, soundID);
}
}).start();
}

@Override
public void onError() {

}
}));

}
});

关于java - picasso 图书馆加载我的图片太慢了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58563678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com