Most visited

Recently visited

Added in API level 1

Picture

public class Picture
extends Object

java.lang.Object
   ↳ android.graphics.Picture


一张图片记录绘画调用(通过由beginRecording返回的画布),然后可以将它们回放到画布中(通过 draw(Canvas)drawPicture(Picture) )。对于大多数内容(例如文本,线条,矩形),从图片中绘制序列可能比等效的API调用,因为图片执行回放时不会产生任何方法调用开销。

Summary

Public constructors

Picture()

创建一张准备好录制的空白图片。

Picture(Picture src)

通过复制已经记录在src中的内容来创建一张图片。

Public methods

Canvas beginRecording(int width, int height)

要录制图片,请调用beginRecording(),然后绘制返回的Canvas。

static Picture createFromStream(InputStream stream)

此方法在API级别18中已弃用。建议的替代方法是不要使用writeToStream,而是将图片绘制到Bitmap中,从中可以将其保存为原始或压缩像素。

void draw(Canvas canvas)

在画布上绘制此图片。

void endRecording()

通话结束录制照片的内容。

int getHeight()

获取传递给开始记录的图片高度。

int getWidth()

获取传递给beginRecording的图片的宽度。

void writeToStream(OutputStream stream)

此方法在API级别18中已弃用。建议的替代方法是将图片绘制到Bitmap中,您可以将其保存为原始或压缩像素。

Protected methods

void finalize()

当垃圾收集确定没有更多对该对象的引用时,由对象上的垃圾回收器调用。

Inherited methods

From class java.lang.Object

Public constructors

Picture

Added in API level 1
Picture ()

创建一张准备好录制的空白图片。

Picture

Added in API level 1
Picture (Picture src)

通过复制已经记录在src中的内容来创建一张图片。 src的内容不变,如果src稍后改变,那些更改将不会反映在此图片中。

Parameters
src Picture

Public methods

beginRecording

Added in API level 1
Canvas beginRecording (int width, 
                int height)

要录制图片,请调用beginRecording(),然后绘制返回的Canvas。 我们没有出现在屏幕上,但会记录所有绘图命令(例如drawRect(Rect, Paint) )。 要停止录制,请调用endRecording()。 在endRecording()之后,必须不再使用返回的Canvas,并且不应该绘制它。

Parameters
width int
height int
Returns
Canvas

createFromStream

Added in API level 1
Picture createFromStream (InputStream stream)

此方法在API级别18中已被弃用。
推荐的替代方法是不使用writeToStream,而是将图片绘制成位图,您可以将其保存为原始或压缩像素。

从流中的数据创建新图片(已录制)。 这个数据是以前对writeToStream()的调用产生的。 不能保证在设备重启过程中持续存在的图片能够正确解码,并且非常不鼓励。

注意:在API级别23之前,从输入流创建的图片无法在硬件加速画布上重播。

Parameters
stream InputStream
Returns
Picture

也可以看看:

draw

Added in API level 1
void draw (Canvas canvas)

在画布上绘制此图片。

LOLLIPOP之前,如果此图片具有不平衡的保存/恢复,此调用可能会改变画布的矩阵和剪辑的副作用。

注意:这会强制图片在内部调用 endRecording()以准备播放。

Parameters
canvas Canvas: The picture is drawn to this canvas

endRecording

Added in API level 1
void endRecording ()

通话结束录制照片的内容。 在此调用之后,可能会绘制图片,但beginRecording返回的画布不能再使用。 如果调用draw(Canvas)drawPicture(Picture)则会自动调用它。

getHeight

Added in API level 1
int getHeight ()

获取传递给开始记录的图片高度。 这并不反映(本身)图片的内容。

Returns
int

getWidth

Added in API level 1
int getWidth ()

获取传递给beginRecording的图片的宽度。 这并不反映(本身)图片的内容。

Returns
int

writeToStream

Added in API level 1
void writeToStream (OutputStream stream)

此方法在API级别18中已被弃用。
建议的替代方法是将图片绘制成位图,从中可以将其保存为原始或压缩像素。

将图片内容写入流中。 通过调用createFromStream(...),可以使用该数据在此过程或其他过程中重新创建图片。由于不能保证图片可以成功重建,因此生成的流不会在设备重新启动时持久保存。

注意:在API级别23之前,从输入流创建的图片无法在硬件加速画布上重播。

Parameters
stream OutputStream

也可以看看:

Protected methods

finalize

Added in API level 1
void finalize ()

当垃圾收集确定没有更多对该对象的引用时,由对象上的垃圾回收器调用。 子类会覆盖finalize方法以处置系统资源或执行其他清理。

的常规协定finalize是,它被调用,如果当在Java TM虚拟机已确定不再有由该目的可以通过还没有死亡,除了作为一个动作的结果的任何线程访问的任何手段取决于某些其他可以完成的对象或类别的最终定稿。 finalize方法可以采取任何行动,包括使该对象再次可用于其他线程; 然而, finalize的通常目的是在对象被不可撤销地丢弃之前执行清理操作。 例如,表示输入/输出连接的对象的finalize方法可能会执行显式I / O事务,以在永久丢弃该对象之前中断连接。

Objectfinalize方法Object执行特殊操作; 它只是正常返回。 Object子类可能会覆盖此定义。

Java编程语言不保证哪个线程将为任何给定对象调用finalize方法。 但是,保证调用finalize的线程在调用finalize时不会保留任何用户可见的同步锁。 如果finalize方法引发未捕获的异常,则忽略该异常,并终止该对象的终止。

在针对某个对象调用 finalize方法之后,在Java虚拟机再次确定不再有任何方法可以通过尚未死亡的任何线程访问此对象,包括可能的操作通过准备完成的其他对象或类别,此时该对象可能被丢弃。

对于任何给定的对象,Java虚拟机从不会多次调用 finalize方法。

finalize方法抛出的任何异常 finalize导致终止此对象的终止,但会被忽略。

Throws
Throwable

Hooray!