Как уменьшить задержку действия при нажатии элемента в Android RecyclerVIew? - PullRequest
2 голосов
/ 30 марта 2019

У меня есть RecyclerView, и когда я нажимаю на элемент, он должен отображать imageSlider с некоторыми изображениями (только 2 или 3).Все работает отлично, но есть небольшая задержка при нажатии, что-то занимает 2 секунды, что очень раздражает?Как я могу это исправить?

Это код слайдера, который загружает изображения из массива растровых изображений:

public class ImageAdapter extends PagerAdapter {

    private Context context;
    private ArrayList<Bitmap> bitmaps;

    public ImageAdapter(Context context, ArrayList<Bitmap> bitmaps) {
        this.context = context;
        this.bitmaps = bitmaps;
    }

    @Override
    public int getCount() {
        return bitmaps.size();
    }


    @Override
    public boolean isViewFromObject(@NonNull View view, @NonNull Object o) {
        return view == o;
    }



    @Override
    public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
        container.removeView((ImageView) object);
    }

    @NonNull
    @Override
    public Object instantiateItem(@NonNull ViewGroup container, int position) {

        ImageView imageView = new ImageView(context);
        Glide.with(container)
                .asBitmap()
                .centerCrop()
                .load(bitmaps.get(position))
                .into(imageView);

        container.addView(imageView,0);
        return imageView;

    }
}

1 Ответ

0 голосов
/ 30 марта 2019

Масштабирование растрового изображения:

Bitmap bitmap = Bitmap.createScaledBitmap(yourBitmap, 100, 100, false);

Bitmap bitmap = Bitmap.createBitmap(yourBitmap, width, height, Bitmap.Config.ARGB_8888);

Или с Glide:

Glide.with(context).asBitmap().load(yourBitmap).apply(new RequestOptions().placeholder(placeHolderDrawable).error(errorDrawable).override(width, height)).into(yourImageView);
...