public Bitmap inBitmap 如果设置,解码选项“对象的方法,采取将尝试重用这个位图加载内容时。
public int inDensity 使用的位图的象素密度。
public boolean inDither 如果抖动是真实的,解码器将尝试到抖动的解码图像。
public boolean inInputShareable 此字段一起选择inPurgeable。
public boolean inJustDecodeBounds 如果设置为true,解码器将返回null(位图),但输出...
public boolean inMutable 如果设置,解码方法总是返回一个可变的位图,而不是一个一成不变的。
public boolean inPreferQualityOverSpeed 如果inPreferQualityOverSpeed​​设置为true,解码器将尝试解码重建图像以较高的质量,甚至不惜牺牲的解码速度。
public Bitmap.Config inPreferredConfig 如果非空,这个内部配置解码器将尝试解码。
public boolean inPurgeable 如果设置为true,则生成的位图将分配给它的像素,这样它们可以被清除,如果系统需要回收内存。
public int inSampleSize 如果设置为> 1的值,要求的解码器,以进行子采样的原始图像,返回一个较小的图像,以节省内存。
public boolean inScaled 当设置了这个标志,如果夏季风和inTargetDensity不为0,位图将进行调整,以符合inTargetDensity时加载,而不是依赖它每次被画到画布上的图形系统结垢。
public int inScreenDensity 正在被使用的实际的屏幕的像素密度。
public int inTargetDensity 目的地的像素密度的这个位图将被吸引到。
public byte[] inTempStorage 温度存储用于解码。
public boolean mCancel 表明,取消已经对这个对象调用的标志。
public int outHeight 位图高度,设置独立的状态inJustDecodeBounds。
public String outMimeType 如果知道,这个字符串解码后的图像的mime类型设置为。
public int outWidth 位图的宽度,设置独立的状态inJustDecodeBounds。

inJustDecodeBounds设为true,BitmapFactory.decodeFile(String path, Options opt)并不会真的返回一个Bitmap给你,它仅仅会把它的宽,高取回来给你,就不会占用太多的内存。

    BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
Bitmap bmp = BitmapFactory.decodeFile(path, options);
/* 这里返回的bmp是null */

宽和高:options.outWidth 和 options.outHeight

获取图片指定大小的缩略图:

    /* 计算得到图片的高度 */
/* 这里需要主意,如果你需要更高的精度来保证图片不变形的话,需要自己进行一下数学运算 */
int height = options.outHeight * / options.outWidth;
options.outWidth = ;
options.outHeight = height;
/* 这样才能真正的返回一个Bitmap给你 */
options.inJustDecodeBounds = false;
Bitmap bmp = BitmapFactory.decodeFile(path, options);
image.setImageBitmap(bmp);

要节约内存,还需要用到BitmapFactory.Options这个类里的 inSampleSize 这个成员变量:

    inSampleSize = options.outWidth / ;
  另外,为了节约内存我们还可以使用下面的几个字段:
options.inPreferredConfig = Bitmap.Config.ARGB_4444; // 默认是Bitmap.Config.ARGB_8888
/* 下面两个字段需要组合使用 */
options.inPurgeable = true;
options.inInputShareable = true;

Android BitmapFactory.Options的更多相关文章

  1. Android学习笔记之BitmapFactory.Options实现图片资源的加载...

    PS:小项目总算是做完了...历经20多天...素材,设计,以及实现全由自己完成...心力憔悴啊...该写写博客记录一下学习到的东西了... 学习内容: 1.使用BitmapFactory.Optio ...

  2. Android实战简易教程-第九枪(BitmapFactory.Options对资源图片进行缩放)

    我们知道,我们编写的应用程序都是有一定内存限制的.程序占用了过高的内存就easy出现OOM(OutOfMemory)异常.因此在展示高分辨率图片的时候,最好先将图片进行压缩,压缩后的图片大小应该和用来 ...

  3. Android使用BitmapFactory.Options解决加载大图片内存溢出问题

    由于Android对图片使用内存有限制,若是加载几兆的大图片便内存溢出.Bitmap会将图片的所有像素(即长x宽)加载到内存中,如果图片分辨率过大,会直接导致内存溢出(java.lang.OutOfM ...

  4. android 下载图片出现SkImageDecoder::Factory returned null,BitmapFactory.Options压缩

    网上有很多说是因为没有采用HttpClient造成的,尼玛,我改成了HttpClient 请求图片之后还是会出现SkImageDecoder::Factory returned null, 但是直接使 ...

  5. android之BitmapFactory.Options的使用

    怎样获取图片的大小? 首先我们把这个图片转成Bitmap,然后再利用Bitmap的getWidth()和getHeight()方法就可以取到图片的宽高了. 新问题又来了,在通过BitmapFactor ...

  6. 【转】BitmapFactory.Options

    BitmapFactory.Options这个类的信息:http://developer.android.com/reference/android/graphics/BitmapFactory.Op ...

  7. Android BitmapFactory图片压缩处理(大位图二次採样压缩处理)

    Android实际开发中.在载入大量图片的时候.比方ViewPager.GridView.ListView中,载入了大量的比較大图片就easy出现OOM(内存溢出)的异常,这是由于一个应用的最大内存使 ...

  8. BitmapFactory.Options对图片进行缩放

    package com.pingyijinren.helloworld.activity; import android.graphics.Bitmap; import android.graphic ...

  9. BitmapFactory.Options

    BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options(); bmpFactoryOptions.inSampleSiz ...

随机推荐

  1. PCA简单实现

    ''' 总结一下PCA的算法步骤: 设有m条n维数据. 1)将原始数据按列组成n行m列矩阵X 2)将X的每一行(代表一个属性字段)进行零均值化,即减去这一行的均值 3)求出协方差矩阵C=1/m*(XX ...

  2. 让 Linux grep 的输出不换行

    在Redhat中亲测. 本来ps -ef的输出是不会换行的,但是 ps -ef | grep java 就换行了. 如果想让grep完的结果不要换行,找到两种方法. 1. 在后面拼接 less -S: ...

  3. hibernate关联关系的crud2

    hibernate关联关系的CRUD操作,解释都在注释里了,讲了fetchType.cascade. User类: package com.oracle.hibernate; import javax ...

  4. Spring Boot遇到的某些问题

    Spring Boot遇到的某些问题 1.关于templates的html包格式问题: <properties> <project.build.sourceEncoding>U ...

  5. devise在引擎中安装后,设置访问自定义页面

    rails generate devise:views User Turn on scoped_views in config/initializer/devise.rb view config.sc ...

  6. 13 Timer和TimerTask

    下面内容转载自:http://blog.csdn.net/xieyuooo/article/details/8607220 其实就Timer来讲就是一个调度器,而TimerTask呢只是一个实现了ru ...

  7. Leetcode 337. House Robber III

    337. House Robber III Total Accepted: 18475 Total Submissions: 47725 Difficulty: Medium The thief ha ...

  8. jQuery插件开发之datalist

    HTML5中定义了一种input框很好看的下拉列表--datalist,然而目前它的支持性并不好(万恶的IE,好在你要渐渐退役了...).于是最近更据需求写了一个小型datalist插件,兼容到IE8 ...

  9. 写Markdown费事?Typora让你像写word一样行云流水,所见即所得。

    Typora 简介 Typora删除了预览窗口,以及所有其他不必要的干扰.取而代之的是实时预览. Markdown的语法因不同的解析器或编辑器而异,Typora使用的是GitHub Flavored ...

  10. [转]asp.net权限认证:摘要认证(digest authentication)

    本文转自:http://www.cnblogs.com/lanxiaoke/p/6357501.html 摘要认证简单介绍 摘要认证是对基本认证的改进,即是用摘要代替账户密码,从而防止明文传输中账户密 ...