读取assets里面的png,gif等

来源:互联网 发布:淘宝网店被释放 编辑:程序博客网 时间:2024/05/28 05:17
assets文件夹里面的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式读取文件。
      1. 先在Activity里面调用getAssets()来获取AssetManager引用。
      2. 再用AssetManager的open(String fileName, int accessMode)方法则指定读取的文件以及访问模式就能得到输入流InputStream。 
      3. 然后就是用已经open file 的inputStream读取文件,读取完成后记得inputStream.close()。
      4.调用AssetManager.close()关闭AssetManager。
需要注意的是,来自Resources和Assets 中的文件只可以读取而不能进行写的操作
以下为从Raw文件中读取:
代码
 
  
 public String getFromRaw(){ 
            try { 
                InputStreamReader inputReader = new InputStreamReader( getResources().openRawResource(R.raw.test1));
                BufferedReader bufReader = new BufferedReader(inputReader);
                String line="";
                String Result="";
                while((line = bufReader.readLine()) != null)
                    Result += line;
                return Result;
            } catch (Exception e) { 
                e.printStackTrace(); 
            }             
    } 




以下为直接从assets读取
代码
    
public String getFromAssets(String fileName){ 
            try { 
                 InputStreamReader inputReader = new InputStreamReader( getResources().getAssets().open(fileName) ); 
                BufferedReader bufReader = new BufferedReader(inputReader);
                String line="";
                String Result="";
                while((line = bufReader.readLine()) != null)
                    Result += line;
                return Result;
            } catch (Exception e) { 
                e.printStackTrace(); 
            }
    } 


例子:读取png图片资源:路径:assets/emotions/XXX.png


 InputStream bitmap = null;
 bitmap = mContext.getAssets().open( "emotions/" + XXX.png); //参数,取assets文件夹下资源文件的路劲,不包括"assets/"
 Bitmap bit = BitmapFactory.decodeStream(bitmap);
(ImageView) findViewById(R.id.mutlti_indicate_img) .setImageBitmap(bit);
0 0
原创粉丝点击