首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

android之BitmapFactory.Options的使用

,BitmapFactory.Options的使用是在加载图片时,就从图片的加载和使用说起 怎样获取图片的大小?...新问题又来了,在通过BitmapFactory.decodeFile(String path)方法将突破转成Bitmap时,遇到大一些的图片,我们经常会遇到OOM(Out Of Memory)的问题。...这就用到了我们上面提到的BitmapFactory.Options这个类。 BitmapFactory.Options这个类,有一个字段叫做 inJustDecodeBounds 。...示例代码如下: BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true...要想节约内存,还需要用到BitmapFactory.Options这个类里的 inSampleSize 这个成员变量。 我们可以根据图片实际的宽高和我们期望的宽高来计算得到这个值。

69120
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Imageloader-压缩图片

    通过采样率压缩图片的步骤: 将BitmapFactory.Options的inJustDecodeBounds参数设置为true并加载图片 从BitmapFactory.Options中取出图片的原始宽和高...,分别对应outWidth和outHeight 根据采样率的就着并结合目标View的所需大小计算出采样率inSampleSize 将BitmapFactory.Options的inJustDecodeBounds...参数设置为false,然后重新加载图片 ---- BTW: 说一下BitmapFactory.Options的inJustDecodeBounds属性,当参数设置为true时,BitmapFactory...int reqWidth, int reqHeight) { // 第一次解析将inJustDecodeBounds设置为true,不将图片加载到内存,获取图片的大小 BitmapFactory.Options...options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeFile

    31620

    Android图片采样缩放功能实例代码

    所以我们可以使用BitmapFactory.Options按照一定的采样率加载缩小后的图片,将缩小后的图片在ImageView中显示,这样就能降低内存占用,在一定程度上避免OOM,提高bitma加载时候的性能...BitmapFactory有一个参数:inSampleSize(采样率)。 inSampleSize为1,那么采样后图片大小等于原始图片大小。...1、将BitmapFactory.Option的inJustDecodeBound参数设为true,加载图片,这个时候图片并没有加载进内存,仅仅是去解析图片原始宽高信息而已。...2、从BitmapFactory.Option取出图片的原始宽高信息,对应于outWidth,outHeight参数。...4、将BitmapFactory.Option的inJustDecodeBound参数设为false,重新加载图片,这时候图片才真正被载进内存。

    1.2K10

    教你如何更好的加载大图片和长图片

    BitmapFactory这个类就提供了多个解析方法(decodeResource、decodeStream、decodeFile等)用于创建Bitmap。我们可以根据图片的来源来选择解析方法。...BitmapFactory为这些方法都提供了一个可选的参数BitmapFactory.Options,用来辅助我们解析图片。...BitmapFactory.Options有一个属性inJustDecodeBounds,这个属性当为true的时候,表明我们当前只是为了获取当前图片的边界的大小,此时BitmapFactory的解析图片方法的返回值为...这样我们就可以很愉快的拿到图片大小了,代码如下: BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds...options = new BitmapFactory.Options(); options.inJustDecodeBounds = false; BitmapFactory.decodeStream

    1.6K30

    加载大图片到内存

    程序分配的堆内存大小是16,虚拟机上面的VM Heep就是设置它的 一个图片所占的内存,比如1920*2560像素的图片需要,1920*2560*3至少这些的内存byte 找到ImageView控件对象 调用BitmapFactory...此时会报内存溢出的错误 我们需要对图片进行缩放 手机的分辨率比如:320*480 图片的分辨率比如:2000*4000 分别计算比例,2000/320 4000/480,按照大的那个比例进行缩放 调用重载方法BitmapFactory...对象的decodeFile(pathName,opts),参数:路径,Options对象 获取BitmapFactory.Option对象,通过new Options()方法 设置Options对象的属性...计算完比例之后 设置Options对象的属性inJustDecodeBounds为false,真解析图片 设置Options对象的采样率属性inSampleSize为上面计算的大的比例 调用重载方法BitmapFactory...; import android.graphics.BitmapFactory.Options; import android.media.ExifInterface; import android.os.Bundle

    98420

    Art of Android Development Reading Notes 12

    BitmapFactory类提供了四类方法:decodeFile、decodeResource、decodeStream和decodeByteArray从不同来源加载出一个Bitmap对象,最终的实现是在底层实现的...采用BitmapFactory.Options按照一定的采样率来加载所需尺寸的图片,因为imageview所需的图片大小往往小于图片的原始尺寸。...(2)BitmapFactory.Options的inSampleSize参数,即采样率 官方文档指出采样率的取值应该是2的指数,例如采样率=k,那么采样后的图片宽高均为原图片大小的 1/k。...options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeResource...需要注意的是,这个时候BitmapFactory获取的图片宽高信息和图片的位置以及程序运行的设备有关,这都会导致BitmapFactory获取到不同的结果。

    39850

    Android经典面试题之图片Bitmap怎么做优化

    图片压缩说起来也不复杂,主要是用到了BitmapFactory的Options,一般都分为如下几个步骤: (1)先把inJustDecodeBounds设置为true,以便后面回去图片的实际大小 //先把...inJustDecodeBounds设置为true,以便后面回去图片的实际大小 BitmapFactory.Options options = new BitmapFactory.Options();...inSampleSize参数表示采样,会对图片的宽高进行缩放 //这里reqWidth和reqHeight表示实际需要的宽高 private static int calculateInSampleSize(BitmapFactory.Options...options = new BitmapFactory.Options(); //先解析图片的宽高信息 options.inJustDecodeBounds = true;...BitmapFactory.decodeResource(res, resId, options); options.inSampleSize = calculateInSampleSize(

    7310
    领券