在显示图片的时候往往图片大小并不合适我们手机屏幕大小,我们一般都会对图片进行压缩修改,达到节省内存的目的。

那么我们可以怎样获取图片大小呢?

Bitmap bitmap=BitmapFactory.decodeFile("");Bitmap bitmap=BitmapFactory.decodeResource(res, id);

我们可以使用以上两种方法,分别适用于获取sd卡上某个位置图片的bitmap对象,以及适合获取app内部资源图片的bitmap对象。(除此之外还有一堆获取bitmap对象的方法这里不一一列举)

再根据所获取得到的对象

bitmap.getWidth();bitmap.getHeight();
分别获取宽和高~这样就可以了~~


慢着~这真的可以吗?以上方法都是把图片给加载到内存之后再获取图片的宽和高的~这是要先加载到内存里获取图片宽高,然后再根据宽高裁剪图片,再把裁剪好的图片加载一次到内存,最后显示出来的节奏吗?这分明是在浪费内存而不是节约内存啊~而且有些图片过大,直接加载到内存里会导致oom~这也是要经过裁剪再加载到内存里面的原因~

好吧此路不通~另外还有方法~:

BitmapFactory.Options op=new Options();op.inJustDecodeBounds=true;BitmapFactory.decodeFile("", op);
decodeFile方法还有另外一个重载,经过这个方法传进去的Options我们可以设定只读取该图片的头信息而不解析该图~

设置的方法就是把一个Options对象new出来然后设置它的inJustDecodeBounds为true,最后传到decodeFile的第二个参数里面就可以了(decodeResource也有对应的重载)


然后再根据Options对象获取该图的宽和高~~

op.outWidth;op.outHeight;





更多相关文章

  1. Android(安卓)ACCESS_COARSE_LOCATION的用途和介绍
  2. Android(安卓)获取OnItemClick事件中组件的内容
  3. Android性能优化(六)图片压缩
  4. android 使用opencv4 图片相似度对比
  5. android 画廊效果(中间大两边小)的无限轮播banner
  6. android service 例子(电话录音和获取系统当前时间)
  7. 内容提供者 (获取媒体库图片显示出来)Android10.0 适配
  8. android避免decodeResource图片时占用太大的内存
  9. MVP模式的Android(安卓)调用系统拍照,相册,剪裁,适配到7.0,修复拍照

随机推荐

  1. Android学习备忘006——Manifest.xml
  2. android典型代码系列(十一)------判断某
  3. Android TextView使用HTML处理字体样式、
  4. Android !No Launcher activity found!错误
  5. android 基础学习(6)-----sqlite3查看表
  6. android 4.0以上无法收到开机广播
  7. IntelliJ IDEA破解版 2017.3.4 Ultimate
  8. Android应用实例之----天气预报程序
  9. Android发送邮件附带文件
  10. Android Market 账号注册和应用发布教程