一、Android除了提供/res目录存放资源文件外,在/assets目录也可以存放资源文件,而且/assets目录下的资源文件不会在R.java自动生成ID,所以读取/assets目录下的文件必须指定文件的路径。我们可以通过AssetManager类来访问这些文件。
比如我要读取/assets/background.png
- Bitmap bgImg = getImageFromAssetFile("background.png");
Bitmap bgImg = getImageFromAssetFile("background.png");
- private Bitmap getImageFromAssetFile(String fileName){
- Bitmap p_w_picpath = null;
- try{
- AssetManager am = context.getAssets();
- InputStream is = am.open(fileName);
- p_w_picpath = BitmapFactory.decodeStream(is);
- is.close();
- }catch(Exception e){
-
- }
- return p_w_picpath;
- }
二、/assets的文件不做压缩,比如存放*.png 文件时,需要读取原文件中的每一像素,则比较有用,缺点是读取时需要指定文件路径,无法通过id读取。 三、res/raw的文件也不压缩,优点是可以通过id读取 四、res/drawable下的文件会做失真压缩
|
转载于:https://blog.51cto.com/tomsonlau/726149