一、Android除了提供/res目录存放资源文件外,在/assets目录也可以存放资源文件,而且/assets目录下的资源文件不会在R.java自动生成ID,所以读取/assets目录下的文件必须指定文件的路径。我们可以通过AssetManager类来访问这些文件。

比如我要读取/assets/background.png

 

Java代码
  1. Bitmap bgImg = getImageFromAssetFile("background.png");  
Bitmap bgImg = getImageFromAssetFile("background.png");

 

Java代码
  1.       private Bitmap getImageFromAssetFile(String fileName){  
  2.     Bitmap p_w_picpath = null;  
  3.     try{  
  4.         AssetManager am = context.getAssets();  
  5.         InputStream is = am.open(fileName);  
  6.         p_w_picpath = BitmapFactory.decodeStream(is);  
  7.         is.close();  
  8.     }catch(Exception e){  
  9.           
  10.     }  
  11.     return p_w_picpath;  


、/assets的文件不做压缩,比如存放*.png 文件时,需要读取原文件中的每一像素,则比较有用,缺点是读取时需要指定文件路径,无法通过id读取。
三、res/raw的文件也不压缩,优点是可以通过id读取
四、res/drawable下的文件会做失真压缩