Я использую Picasso для отображения множества маленьких ImageViews в RecyclerView. ImageViews меняют свое изображение на 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 для предотвращениямое приложение от получения OutOfMemory падает. Изображение исчезает примерно на 10 миллисекунд, затем изменяется на другое изображение, через 500 миллисекунд оно снова исчезает и затем возвращается к изображению по умолчанию. Он исчезает только в первый раз, когда я нажимаю на одно из изображений, после этого он работает без исчезновения. Я думаю, что это происходит потому, что Пикассо загружает изображение слишком медленно. Есть ли способ сначала загрузить изображение и отобразить его, когда я нажму на кнопку?
Вот GIF, который показывает, как это выглядит: https://media.giphy.com/media/STlGbpXvT8B9iBvnQS/giphy.gif В этом случае оно исчезает только один раз, ноиногда он исчезает дважды одним кликом.
Изображения размером 200x200 и размером около 8 КБ. Формат: .WEBP
Как я могу предотвратить это?