二次采样

1.  设置模拟器可读可写

     并且在权限中添加可读权限

2.点击事件中

        Bitmap bitMap = getBitMap(Environment.getExternalStorageDirectory() + "/aaa.jpg", 320, 480);

        imageView.setImageBitmap(bitMap);

3.写方法

        private Bitmap getBitMap(String path,int width,int height){

        //1.第一次采样不加载整张图片,,,只加载边框
        //从文件解码一个图片
        BitmapFactory.Options options = new BitmapFactory.Options();
        //设置只加载边框
        options.inJustDecodeBounds = true;
        BitmapFactory.decodeFile(path,options);

        //获取大图片的宽度和高度
        int outWidth = options.outWidth;
        int outHeight = options.outHeight;

        //计算宽度和高度显示的比例
        int x = outWidth / width;
        int y = outHeight / height;

        //这是压缩的比例
        int simpleSize = 1;

        if (x>y && y>1){
            simpleSize = x;
        }else if (y>x && x>1){
            simpleSize = y;
        }

  //........到这个位置计算出压缩的比例,,,完成第一次采样

        //第二次采样是加载图片的缩略图

        options.inJustDecodeBounds = false;//不在只加载边框,,,要加载整个图片的像素点
        options.inSampleSize = simpleSize;//指定加载图片的压缩比例
        options.inPreferredConfig = Bitmap.Config.RGB_565;//设置图片的加载模式...565在内存中一个像素占2字节,,8888一个像素占4个字节
        //Bitmap.Config.ALPHA_8;
        //Bitmap.Config.ARGB_4444;
        //Bitmap.Config.ARGB_8888

        return BitmapFactory.decodeFile(path,options);//以...选项去解码图片文件,,,返回值是bitmap
    }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值