public class Picture
extends Object
java.lang.Object | |
↳ | android.graphics.Picture |
一张图片记录绘画调用(通过由beginRecording返回的画布),然后可以将它们回放到画布中(通过 draw(Canvas)
或 drawPicture(Picture)
)。对于大多数内容(例如文本,线条,矩形),从图片中绘制序列可能比等效的API调用,因为图片执行回放时不会产生任何方法调用开销。
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
|
Picture (Picture src)
通过复制已经记录在src中的内容来创建一张图片。 src的内容不变,如果src稍后改变,那些更改将不会反映在此图片中。
Parameters | |
---|---|
src |
Picture
|
Canvas beginRecording (int width, int height)
要录制图片,请调用beginRecording(),然后绘制返回的Canvas。 我们没有出现在屏幕上,但会记录所有绘图命令(例如drawRect(Rect, Paint)
)。 要停止录制,请调用endRecording()。 在endRecording()之后,必须不再使用返回的Canvas,并且不应该绘制它。
Parameters | |
---|---|
width |
int
|
height |
int
|
Returns | |
---|---|
Canvas |
Picture createFromStream (InputStream stream)
此方法在API级别18中已被弃用。
推荐的替代方法是不使用writeToStream,而是将图片绘制成位图,您可以将其保存为原始或压缩像素。
从流中的数据创建新图片(已录制)。 这个数据是以前对writeToStream()的调用产生的。 不能保证在设备重启过程中持续存在的图片能够正确解码,并且非常不鼓励。
注意:在API级别23之前,从输入流创建的图片无法在硬件加速画布上重播。
Parameters | |
---|---|
stream |
InputStream
|
Returns | |
---|---|
Picture |
void draw (Canvas canvas)
在画布上绘制此图片。
在 LOLLIPOP
之前,如果此图片具有不平衡的保存/恢复,此调用可能会改变画布的矩阵和剪辑的副作用。
注意:这会强制图片在内部调用 endRecording()
以准备播放。
Parameters | |
---|---|
canvas |
Canvas : The picture is drawn to this canvas |
void endRecording ()
通话结束录制照片的内容。 在此调用之后,可能会绘制图片,但beginRecording返回的画布不能再使用。 如果调用draw(Canvas)
或drawPicture(Picture)
则会自动调用它。
int getWidth ()
获取传递给beginRecording的图片的宽度。 这并不反映(本身)图片的内容。
Returns | |
---|---|
int |
void writeToStream (OutputStream stream)
此方法在API级别18中已被弃用。
建议的替代方法是将图片绘制成位图,从中可以将其保存为原始或压缩像素。
将图片内容写入流中。 通过调用createFromStream(...),可以使用该数据在此过程或其他过程中重新创建图片。由于不能保证图片可以成功重建,因此生成的流不会在设备重新启动时持久保存。
注意:在API级别23之前,从输入流创建的图片无法在硬件加速画布上重播。
Parameters | |
---|---|
stream |
OutputStream
|
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 |