美文网首页
图片缩放2

图片缩放2

作者: dev晴天 | 来源:发表于2018-08-11 19:33 被阅读0次
      public void doClick(View view) {
    
            /*  此种方式加载大图片(远远大于手机的分辨率)容易oom    BitmapFactory.decodeFile(String);
            * 故使用含有两个参数的构造函数BitmapFactory.decodeFile(String,options);
            * 按照要求创建options参数
            * */
    
            //创建位图工厂配置参数
            BitmapFactory.Options options = new BitmapFactory.Options();
            // 设置为true 解码器不去真正解析位图 但是会获得位图的宽高信息(封装到options中 宽高)
            options.inJustDecodeBounds = true;
            BitmapFactory.decodeFile("mnt/sdcard/1.jpg", options);// 不解析位图此处也不必要射返回值
            //获得图片宽高
            int Imgheight = options.outHeight;
            int Imgwidgh = options.outWidth;
    
            // 计算缩放比例   一般大于1 的时候进行缩放图片小于手机分辨率 不用进行缩放的
    
            int scale = 1;//默认缩放比例
            int scaleX = Imgheight / height;
            int scaleY = Imgwidgh / width;
            if (scaleX >= scaleY && scaleX > scale) {
                scale = scaleX;
            }
            if (scaleY > scaleX && scaleY > scale) {
                scale = scaleY;
            }
            //以上为固定步骤
    
            //按照缩放比例进行缩放
            options.inSampleSize = scale;//  以计算出的样品进行显示(可以不进行计算直接指定缩放比例  但是这种方法或有时缩放过度)
            // 按照缩放比例真正解析位图
            options.inJustDecodeBounds = false;//刚开始使用的时候不设置默认为false
            Bitmap bitmap = BitmapFactory.decodeFile("mnt/sdcard/1.jpg", options);
    //        显示图片
            imageView.setImageBitmap(bitmap);
    
        }
    

    相关文章

      网友评论

          本文标题:图片缩放2

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