android 图片浏览 处理

本文介绍了解决Android中图片过大导致的内存不足问题的方法,通过调整BitmapFactory.Options参数inSampleSize来减少图片占用的堆内存。此外,还介绍了如何使用Bitmap.createBitmap()方法结合Matrix类实现图片的缩放和旋转。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 图片太大,内存不足heap space 之类的问题:

   BitmapFactory.Options options=new BitmapFactory.Options();

   options.inSampleSize = 2;//数字越大读出的图片占用的heap越小

   BitmapFactory.decodeFile(pathName,options); 

 

2 图片放大缩小的方法:

   Bitmap.createBitmap(bitMap,....);用这个方法能放大和缩小图片到想要的size

   其中Matrix类提供了更好的机制:

 

     //获得原始图片的size
     int bmpWidth=bmp.getWidth();
     int bmpHeight=bmp.getHeight();

     //设置缩放比例 或者根据新的size来计算出缩放比例
     double scale=1.25;

     //计算出这次要缩小的比例
     float scaleWidth=(float)(scaleWidth*scale);
     float scaleHeight=(float)(scaleHeight*scale);

     //产生resize后的Bitmap对象
     Matrix matrix=new Matrix();
     matrix.postScale(scaleWidth, scaleHeight);
     matrix.postRotate(45);//方向变换
     //得到新的bitmap
     Bitmap resizeBmp=Bitmap.createBitmap(bmp, 0, 0, bmpWidth,    bmpHeight, matrix, true);
    
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值