加载图片(缩放当图片太大)

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        BitmapFactory.Options options = new BitmapFactory.Options();
        //允许调用者去查询图片的属性但是不为图片的像素分配内存
        options.inJustDecodeBounds = true;
        BitmapFactory.decodeFile("sdcard/girl.jpg", options);

        //拿到图片宽高
        int imageWidth = options.outWidth;
        int imageHeight = options.outHeight;

        Display display = getWindowManager().getDefaultDisplay();
        int screenWidth = display.getWidth();//获取屏幕宽
        int screenHeight = display.getHeight();//获取屏幕高


        //计算缩放比例
        int scaleWidth = imageWidth / screenWidth;
        int scaleHeight = imageHeight / screenHeight;
        int scale = 1;

        //如果宽高缩放比例不一致,采用哪个(采用比例高的那个),
        // scaleWidth > 0表示图片的宽度要比屏幕的大时
        if (scaleWidth >= scaleHeight && scaleWidth > 0){
            scale=scaleWidth;
        }else if(scaleWidth<scaleHeight && scaleHeight>0){
            scale=scaleHeight;
        }

        //设置缩放比例
        options.inSampleSize=scale;
        options.inJustDecodeBounds=false;

        Bitmap bm=BitmapFactory.decodeFile("sdcard/girl.jpg",options);

        ImageView iv= (ImageView) findViewById(R.id.iv1);
        iv.setImageBitmap(bm);

    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值