BitmapFactory
时间: 2024-09-09 21:10:19 浏览: 38
`BitmapFactory`是Android平台用于从各种资源(如文件、网络流、Assets目录)创建位图(Bitmap)的主要工具。它提供了多种方法来加载图片,其中一些关注内存优化,以减少因大尺寸图片导致的内存溢出(OOM)。
1. **直接加载图片**[^1]:
```java
BitmapFactory.decodeFile(filePath); // 直接读取本地文件路径
```
2. **使用Options进行动态缩放**:
```java
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true; // 只获取边界信息,不加载图片
BitmapFactory.decodeResource(getResources(), drawableId, options);
options.inSampleSize = calculateInSampleSize(options, widthDesired, heightDesired); // 根据所需尺寸调整采样率
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), drawableId, options);
```
在这个示例中,`calculateInSampleSize()`是一个自定义函数,可以根据屏幕大小计算合适的采样率(如宽度和高度的一半),从而创建一个较小尺寸的Bitmap,减少内存消耗。
阅读全文