在PageViewer中应用之前,如何使用Glide减小图像尺寸?

时间:2019-04-24 10:30:40

标签: android android-glide

我创建了一个PageViewer(一种加载屏幕),并试图在3个不同位置分别插入3张图像。但是,我收到此错误: java.lang.RuntimeException: Canvas: trying to draw too large(222964624bytes) bitmap.,因此尽管最大PNG仅为344kB,但我仍需要减小PNG的大小。

在我的PageView Adapter类中,我使用它来设置图像:

        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 :(得分:0)

尝试一下。

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()))