我在示例code
后面的assets文件夹中编写了代码加载器图像我不知道为什么加载* .png不起作用。 JPG工作。
JPG工作
Bitmap bitmap = decodeStreamFromAssets("test.jpg", 64, 64);
if(bitmap != null){
imageViewTest.setImageBitmap(bitmap);
}
else {
Logs.e("error");
}
PNG不起作用(是错误)
Bitmap bitmap = decodeStreamFromAssets("test.png", 64, 64);
if(bitmap != null){
imageViewTest.setImageBitmap(bitmap);
}
else {
Logs.e("error");
}
答案 0 :(得分:2)
有两种方法可以从资源文件夹加载图像。
解决方案1:
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.test, null);
imageViewTest.setImageBitmap(bitmap);
解决方案2:
InputStream ins = null;
try {
ins = getAssets().open("test.png");
Bitmap bitmap = BitmapFactory.decodeStream(ins);
imageViewTest.setImageBitmap(bitmap);
} catch (final IOException e) {
e.printStackTrace();
} finally {
if (ins != null)
try {
ins.close();
} catch (IOException e) { }
}
我建议使用第二个因为表现良好。
运行两个功能50次以在Nexus上加载小型PNG文件(230 * 230)
运行Android 4.2.2的Galaxy:
decodeResource:1793ms
decodeStream:188ms
答案 1 :(得分:0)
其中decodeStreamFromAssets?
InputStream is = getAssets().open("ic_launcher.png");
Bitmap bitmap = BitmapFactory.decodeStream(is);
它有效!