public final class BitmapRegionDecoder
extends Object
java.lang.Object | |
↳ | android.graphics.BitmapRegionDecoder |
BitmapRegionDecoder可用于从图像中解码矩形区域。 当原始图像很大并且只需要图像的一部分时,BitmapRegionDecoder特别有用。
要创建BitmapRegionDecoder,请调用newInstance(...)。 给定BitmapRegionDecoder,用户可以重复调用decodeRegion()来获取指定区域的解码位图。
Public methods |
|
---|---|
Bitmap |
decodeRegion(Rect rect, BitmapFactory.Options options) 解码由rect指定的图像中的矩形区域。 |
int |
getHeight() 返回原始图像的高度 |
int |
getWidth() 返回原始图像的宽度 |
final boolean |
isRecycled() 如果此区域解码器已被回收,则返回true。 |
static BitmapRegionDecoder |
newInstance(InputStream is, boolean isShareable) 从输入流创建一个BitmapRegionDecoder。 |
static BitmapRegionDecoder |
newInstance(FileDescriptor fd, boolean isShareable) 从文件描述符创建一个BitmapRegionDecoder。 |
static BitmapRegionDecoder |
newInstance(String pathName, boolean isShareable) 从文件路径创建一个BitmapRegionDecoder。 |
static BitmapRegionDecoder |
newInstance(byte[] data, int offset, int length, boolean isShareable) 从指定的字节数组创建一个BitmapRegionDecoder。 |
void |
recycle() 释放与该区域解码器相关联的内存,并将区域解码器标记为“死”,这意味着如果调用decodeRegion(),getWidth()或getHeight(),它将引发异常。 |
Protected methods |
|
---|---|
void |
finalize() 当垃圾收集确定没有更多对该对象的引用时,由对象上的垃圾回收器调用。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
Bitmap decodeRegion (Rect rect, BitmapFactory.Options options)
解码由rect指定的图像中的矩形区域。
Parameters | |
---|---|
rect |
Rect : The rectangle that specified the region to be decode. |
options |
BitmapFactory.Options : null-ok; Options that control downsampling. inPurgeable is not supported. |
Returns | |
---|---|
Bitmap |
The decoded bitmap, or null if the image data could not be decoded. |
boolean isRecycled ()
如果此区域解码器已被回收,则返回true。 如果是这样,那么尝试使用它的方法是错误的。
Returns | |
---|---|
boolean |
true if the region decoder has been recycled |
BitmapRegionDecoder newInstance (InputStream is, boolean isShareable)
从输入流创建一个BitmapRegionDecoder。 流的位置将是编码数据读取后的位置。 目前只支持JPEG和PNG格式。
Parameters | |
---|---|
is |
InputStream : The input stream that holds the raw data to be decoded into a BitmapRegionDecoder. |
isShareable |
boolean : If this is true, then the BitmapRegionDecoder may keep a shallow reference to the input. If this is false, then the BitmapRegionDecoder will explicitly make a copy of the input data, and keep that. Even if sharing is allowed, the implementation may still decide to make a deep copy of the input data. If an image is progressively encoded, allowing sharing may degrade the decoding speed. |
Returns | |
---|---|
BitmapRegionDecoder |
BitmapRegionDecoder, or null if the image data could not be decoded. |
Throws | |
---|---|
IOException |
if the image format is not supported or can not be decoded. 在 |
BitmapRegionDecoder newInstance (FileDescriptor fd, boolean isShareable)
从文件描述符创建一个BitmapRegionDecoder。 描述符中的位置在返回时不会改变,所以描述符可以按原样再次使用。 目前只支持JPEG和PNG格式。
Parameters | |
---|---|
fd |
FileDescriptor : The file descriptor containing the data to decode |
isShareable |
boolean : If this is true, then the BitmapRegionDecoder may keep a shallow reference to the input. If this is false, then the BitmapRegionDecoder will explicitly make a copy of the input data, and keep that. Even if sharing is allowed, the implementation may still decide to make a deep copy of the input data. If an image is progressively encoded, allowing sharing may degrade the decoding speed. |
Returns | |
---|---|
BitmapRegionDecoder |
BitmapRegionDecoder, or null if the image data could not be decoded. |
Throws | |
---|---|
IOException |
if the image format is not supported or can not be decoded. |
BitmapRegionDecoder newInstance (String pathName, boolean isShareable)
从文件路径创建一个BitmapRegionDecoder。 目前只支持JPEG和PNG格式。
Parameters | |
---|---|
pathName |
String : complete path name for the file to be decoded. |
isShareable |
boolean : If this is true, then the BitmapRegionDecoder may keep a shallow reference to the input. If this is false, then the BitmapRegionDecoder will explicitly make a copy of the input data, and keep that. Even if sharing is allowed, the implementation may still decide to make a deep copy of the input data. If an image is progressively encoded, allowing sharing may degrade the decoding speed. |
Returns | |
---|---|
BitmapRegionDecoder |
BitmapRegionDecoder, or null if the image data could not be decoded. |
Throws | |
---|---|
IOException |
if the image format is not supported or can not be decoded. |
BitmapRegionDecoder newInstance (byte[] data, int offset, int length, boolean isShareable)
从指定的字节数组创建一个BitmapRegionDecoder。 目前只支持JPEG和PNG格式。
Parameters | |
---|---|
data |
byte : byte array of compressed image data. |
offset |
int : offset into data for where the decoder should begin parsing. |
length |
int : the number of bytes, beginning at offset, to parse |
isShareable |
boolean : If this is true, then the BitmapRegionDecoder may keep a shallow reference to the input. If this is false, then the BitmapRegionDecoder will explicitly make a copy of the input data, and keep that. Even if sharing is allowed, the implementation may still decide to make a deep copy of the input data. If an image is progressively encoded, allowing sharing may degrade the decoding speed. |
Returns | |
---|---|
BitmapRegionDecoder |
BitmapRegionDecoder, or null if the image data could not be decoded. |
Throws | |
---|---|
IOException |
if the image format is not supported or can not be decoded. |
void recycle ()
释放与该区域解码器相关联的内存,并将区域解码器标记为“死”,这意味着如果调用decodeRegion(),getWidth()或getHeight(),它将引发异常。
这个操作不能颠倒过来,所以只有在你确定区域解码器没有进一步的用途时才应该调用它。 这是一个高级调用,通常不需要调用,因为当没有更多的这个区域解码器的引用时,正常的GC进程将释放这个内存。
void finalize ()
当垃圾收集确定没有更多对该对象的引用时,由对象上的垃圾回收器调用。 子类会覆盖finalize
方法以处置系统资源或执行其他清理。
的常规协定finalize
是,它被调用,如果当在Java TM虚拟机已确定不再有由该目的可以通过还没有死亡,除了作为一个动作的结果的任何线程访问的任何手段取决于某些其他可以完成的对象或类别的最终定稿。 该finalize
方法可以采取任何行动,包括再制作该对象提供给其他线程; 然而, finalize
的通常目的是在对象被不可撤销地丢弃之前执行清理操作。 例如,表示输入/输出连接的对象的finalize方法可能会执行显式I / O事务,以在永久丢弃该对象之前中断连接。
类Object
的finalize
方法Object
执行特殊操作; 它只是正常返回。 Object
子类可能会覆盖此定义。
Java编程语言不保证哪个线程将为任何给定的对象调用finalize
方法。 但是,保证调用finalize的线程在调用finalize时不会保留任何用户可见的同步锁。 如果finalize方法引发未捕获的异常,则忽略该异常,并终止该对象的终止。
在针对某个对象调用 finalize
方法之后,不会采取进一步的操作,直到Java虚拟机再次确定不再有任何途径可以通过任何尚未死亡的线程访问此对象,包括可能的操作通过准备完成的其他对象或类别,此时该对象可能被丢弃。
对于任何给定对象,Java虚拟机永远不会多次调用 finalize
方法。
finalize
方法抛出的任何异常 finalize
导致终止此对象的终止,但会被忽略。
Throws | |
---|---|
Throwable |