从资源文件夹加载图像(错误加载* .png)

时间:2015-01-24 11:50:14

标签: android bitmap

我在示例code

后面的assets文件夹中编写了代码加载器图像

my code

我不知道为什么加载* .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");
    }

2 个答案:

答案 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);

它有效!