美文网首页
Android 加载大图片,不压缩图片

Android 加载大图片,不压缩图片

作者: 三季人 | 来源:发表于2016-02-24 16:43 被阅读549次

    android 从Resources和Assets中读取文件

    在res/raw 和 assets 目录下新建两个文本文件 "test1.txt"   和 "test2.txt" 用以读取,结构如下图。 
    
     //从resources中的raw 文件夹中获取文件并读取数据   
    **public** String getFromRaw(){   
        String result = "";   
            **try** {   
                InputStream in = getResources().openRawResource(R.raw.test1);   
                //获取文件的字节数   
                **int** lenght = in.available();   
                //创建byte数组   
                **byte**[]  buffer = **new** **byte**[lenght];   
                //将文件中的数据读到byte数组中   
                in.read(buffer);   
                result = EncodingUtils.getString(buffer, ENCODING);   
            } **catch** (Exception e) {   
                e.printStackTrace();   
            }   
            **return** result;   
    }   
       
    //从assets 文件夹中获取文件并读取数据   
    **public** String getFromAssets(String fileName){   
        String result = "";   
            **try** {   
                InputStream in = getResources().getAssets().open(fileName);   
                //获取文件的字节数   
                **int** lenght = in.available();   
                //创建byte数组   
                **byte**[]  buffer = **new** **byte**[lenght];   
                //将文件中的数据读到byte数组中   
                in.read(buffer);   
                result = EncodingUtils.getString(buffer, ENCODING);   
            } **catch** (Exception e) {   
                e.printStackTrace();   
            }   
            **return** result;   
    }   
    

    BitmapFactory.Options

    BitmapFactory.Options这个类,有一个字段叫做 inJustDecodeBounds 。
    SDK中对这个成员的说明是这样的: If set to true, the decoder will return null (no bitmap), but the out… 
    也就是说,如果我们把它设为true,那么BitmapFactory.decodeFile(String path, Options opt)并不会真的返回一个Bitmap给你,它仅仅会把它的宽,高取回来给你,这样就不会占用太多的内存,也就不会那么频繁的发生OOM了。 示例代码如下:
    
    BitmapFactory.Options options = new BitmapFactory.Options();
    options.inJustDecodeBounds = true;
    Bitmap bmp = BitmapFactory.decodeFile(path, options);/* 这里返回的bmp是null */
    

    android图片压缩质量参数Bitmap.Config RGB_565 ARGB_8888

    相关链接

    在压缩之前将option的值设置一下:
    options.inPreferredConfig = Bitmap.Config.RGB_565;
    

    Rect类

    Rect类:Rect类主要用于表示坐标系中的一块矩形区域
    

    参考链接1
    参考链接2

     new  Rect(150, 75, 260, 120)  
    这四个 参数 分别代表的意思是:left   top   right   bottom  上下左右呗。啊,不是 是 左 上 右 下。 下面给大家解释  
    left : 矩形左边的X坐标  150        ---->图片中的A点 
    top:    矩形顶部的Y坐标   75         ---->图片中的B点 
    right :  矩形右边的X坐标   260       ----->图片中的C点 
    bottom: 矩形底部的Y坐标 120     ------->图片中的D点 
    

    参考文档
    github项目地址

    相关文章

      网友评论

          本文标题:Android 加载大图片,不压缩图片

          本文链接:https://www.haomeiwen.com/subject/xshikttx.html