我创建了一个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减小图像尺寸。或者实际上也欢迎任何其他解决方案,我将如何更改该部分代码以适应此要求?
答案 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()))