BitmapFactory.Options.InBitmap 属性

定义

如果设置,采用 Options 对象的解码方法将在加载内容时尝试重复使用此位图。

[Android.Runtime.Register("inBitmap")]
public Android.Graphics.Bitmap InBitmap { get; set; }
[<Android.Runtime.Register("inBitmap")>]
member this.InBitmap : Android.Graphics.Bitmap with get, set

属性值

属性

注解

如果设置,采用 Options 对象的解码方法将在加载内容时尝试重复使用此位图。 如果解码操作不能使用此位图,解码方法将引发一个 java.lang.IllegalArgumentException。 当前实现要求重复使用的位图是可变的,并且生成的重用位图将继续保持可变状态,即使解码通常会导致不可变位图的资源也是如此。</p>

你仍应始终使用解码方法返回的位图,而不是假定重复使用位图有效,因为上述约束和可能发生的失败情况。 检查返回值是否与 Options 结构中 inBitmap 集的值匹配将指示是否重用了位图,但在所有情况下,都应使用解码函数返回的位图来确保使用用作解码目标的位图。

<h3>使用 BitmapFactory</h3>

从此android.os.Build.VERSION_CODES#KITKAT,只要解码的位图的结果Bitmap#getByteCount() byte count小于或等于Bitmap#getAllocationByteCount() allocated byte count重复使用的位图,任何可变位图都可以重复使用BitmapFactory以解码任何其他位图。 这是因为内部大小较小,或者其大小后缩放(对于密度/样本大小)较小。

<p class=“note”>在附加约束之前 android.os.Build.VERSION_CODES#KITKAT 适用:正在解码的图像(无论是作为资源还是流)必须采用 jpeg 或 png 格式。 仅支持大小相等的位图,设置为 #inSampleSize 1。 此外, android.graphics.Bitmap.Config configuration 重复使用的位图将替代 #inPreferredConfig设置(如果已设置)。</p>

<h3>使用 BitmapRegionDecoder</h3>

BitmapRegionDecoder 将请求的内容绘制到提供的位图中,如果输出内容大小(后期缩放)大于提供的位图,则剪辑。 提供的位图的宽度、高度和 Bitmap.Config 不会更改。

<p class=“note”>BitmapRegionDecoder 支持#inBitmap在 .android.os.Build.VERSION_CODES#JELLY_BEAN BitmapRegionDecoder 支持的所有格式都支持通过 #inBitmap位图重用。

适用于 . 的 android.graphics.BitmapFactory.Options.inBitmapJava 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

适用于