android bitmap复用,Android Bitmap——基本使用及压缩、颜色质量、bitmap内存空间复用...

本文详细介绍了Android中Bitmap的使用,包括如何通过BitmapFactory.Options进行内存优化,如利用inJustDecodeBounds获取图片尺寸,通过inSampleSize进行图片压缩,以及设置inPreferredConfig减小像素内存占用。此外,还探讨了Bitmap内存空间复用的概念,利用inBitmap属性实现内存高效利用。

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

实例化对象

Bitmap对象大小和像素大小

BitmapFactory.Options

如何实例化对象

Bitmap文档

Bitmap提供了一系列的createXX方法,可以通过:Bitmap、DisplayMetrics、Picture、RGB的颜色数组等得到一个Bitmap对象。

BitmapFactory提供了一系列的decodeXX方法。流行、文件、资源等得到一个Bitmap对象。

示例:

bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.car);

...

bitmap = Bitmap.createBitmap(BitmapFactory.decodeResource(getResources(),R.drawable.car));

一般通过Bitmap创建的话需要先事先有一个Bitmap对象,或者通过自己指定一些像素属性。

BitmapFactory基本用语将一个图片资源变为解码成Bitmap对象。

Bitmap对象大小和像素大小。

/**

* 返回Bitmap对象像素所占内存大小

*

*

As of {@link android.os.Build.VERSION_CODES#KITKAT}, the result of this method can

* no longer be used to determine memory usage of a bitmap. See {@link

* #getAllocationByteCount()}.

*/

public final int getByteCount() {

if (mRecycled) {

Log.w(TAG, "Called getByteCount() on a recycle()'d bitmap! "

+ "This is undefined behavior!");

return 0;

}

// int result permits bitmaps up to 46,340 x 46,340

return getRowBytes() * getHeight();

}

此方法在19之后就不能在用于定位Bitmap对象内存使用的情况,需要用getAllocationByteCount

/**

* Returns the size of the allocated memory used to store this bitmap's pi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值