我尝试在UI上应用少量图片。我使用bitmap
来实现这一点,因为我没有任何空间可以使用简单的setImageResource
。
问题是分配失败。
java.lang.OutOfMemoryError:无法分配带有16765312个空闲字节的93600012字节分配和70MB直到OOM
如果你能帮助我解决这个问题,我会很高兴。
int imgResource = item.getIcon(); // for example imgResource = R.drawable.test
Drawable drawable = context.getResources().getDrawable(imgResource); //Here I get the error
Bitmap bitmap = ((BitmapDrawable)drawable).getBitmap();
holder.iv.setImageBitmap(bitmap);
谢谢!
答案 0 :(得分:0)
尝试这种方法。添加android:largeHeap="true"
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:supportsRtl="true"
android:theme="@style/AppTheme">
使用此方法并传递上下文和图像文件名:
public Bitmap getAssetImage(Context context, String filename) throws IOException {
AssetManager assets = context.getResources().getAssets();
InputStream buffer = new BufferedInputStream((assets.open("drawable/" + filename + ".png")));
Bitmap bitmap = BitmapFactory.decodeStream(buffer);
return bitmap;
// return new BitmapDrawable(context.getResources(), bitmap);
}