Как уменьшить размер изображения с помощью Glide перед применением в PageViewer? - PullRequest
0 голосов
/ 24 апреля 2019

Я создал PageViewer (своего рода экран) и пытаюсь вставить 3 изображения в 3 разных положениях каждое.Однако я получаю эту ошибку: java.lang.RuntimeException: Canvas: trying to draw too large(222964624bytes) bitmap., поэтому мне нужно уменьшить размер PNG, которые я использую, несмотря на то, что самый большой из них составляет всего 344 КБ.

В моем классе адаптера PageView я использую это дляустановите изображение:

        View layout = inflater.inflate(R.layout.layout_screen, null);

        ImageView imgSlide = layout.findViewById(R.id.intro_image);
        imgSlide.setImageResource(mListScreen.get(position).getScreenImg());

        container.addView(layout);

        return layout;

Если я хотел использовать Glide, чтобы уменьшить размер изображения.Или на самом деле любое другое решение также приветствуется, как бы я изменил этот бит кода для удовлетворения этого требования?

1 Ответ

0 голосов
/ 24 апреля 2019

Попробуйте это.

public static void LoadImage(Context mContext, String Imageurl, ImageView view) {
     RequestOptions options = new RequestOptions()
                    .signature(new ObjectKey(Imageurl))
                    .format(DecodeFormat.PREFER_RGB_565)
                    .diskCacheStrategy(DiskCacheStrategy.RESOURCE);

            Glide.with(mContext)
                    .load(Imageurl)
                    .apply(options)
                    .thumbnail(0f)
                    .into(view);
}

Использование

    ImageView imgSlide = layout.findViewById(R.id.intro_image);
    LoadImage(this,"https://cdn.pixabay.com/photo/2017/08/30/01/05/milky-way-2695569_960_720.jpg",imgSlide);

Для изменения нагрузки при вытягивании

.load(Imageurl)

По

.load(mContext.getResources().getDrawable(mListScreen.get(position).getScreenImg()))
...