我得到了带有 SQLite
数据库的应用程序,其中保存了可绘制对象(字符串)的名称。多个drawable保存在res/drawable
目录下,它们的缩放尺寸drawable-hdpi, drawable-mdpi, drawable-xhdpi
等。这个设备使用mdpi。它们的大小约为 80 kB。每次我调用 update()
方法时,我都会为同一个 ImageView
调用 SetImageResource
方法,并且我只更改 图像文件
并且需要大约 0.8 MB 的内存增加。如何避免这种情况?
private ImageView mImageName;
private void update(){
mImageName.setImageResource(getResources().getIdentifier("@drawable/" + mQuestionLibrary.getImage(mQuestionNumber), null, getPackageName()));
}
最佳答案
您必须使用 Image Resource Importer 才能为不同的屏幕设置多种尺寸。
然后你需要通过这段代码设置你的图片:
mImageName.setImageResource(R.drawable.resource_name);
您还可以修改 mQuestionLibrary.getImage(mQuestionNumber)
以返回资源 ID 而不是资源名称,然后使用:
mImageName.setImageResource(mQuestionLibrary.getImage(mQuestionNumber));
关于android - ImageView.SetImageResource 方法占用大量内存(40%),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47501531/