`

asset下的文件与res/raw /drawable下文件的区别

 
阅读更多

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

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

 

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

 

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


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


第一点参考http://mingkg21.javaeye.com/blog/444830

分享到:
评论
1 楼 endual 2012-04-25  
可以删除assets文件么
我有一个数据库是要本地化的,2M多,我启动程序就复制这个数据库到databases文件夹下,然后删除assets下数据库,请问这个能实现么?

相关推荐

Global site tag (gtag.js) - Google Analytics