public class Surface
extends Object
implements Parcelable
java.lang.Object | |
↳ | android.view.Surface |
处理由屏幕合成器管理的原始缓冲区。
Nested classes |
|
---|---|
class |
Surface.OutOfResourcesException 当Canvas无法用 |
Constants |
|
---|---|
int |
ROTATION_0 旋转常数:0度旋转(自然方向) |
int |
ROTATION_180 旋转常数:180度旋转。 |
int |
ROTATION_270 旋转常数:270度旋转。 |
int |
ROTATION_90 旋转常数:90度旋转。 |
Inherited constants |
---|
From interface android.os.Parcelable
|
Fields |
|
---|---|
public static final Creator<Surface> |
CREATOR |
Public constructors |
|
---|---|
Surface(SurfaceTexture surfaceTexture) 从 |
Public methods |
|
---|---|
int |
describeContents() 描述此Parcelable实例的封送表示中包含的特殊对象的种类。 |
boolean |
isValid() 如果此对象包含有效曲面,则返回true。 |
Canvas |
lockCanvas(Rect inOutDirty) 获取一个 |
Canvas |
lockHardwareCanvas() 获取一个 |
void |
readFromParcel(Parcel source) |
void |
release() 释放对服务器端表面的本地引用。 |
String |
toString() 返回对象的字符串表示形式。 |
void |
unlockCanvas(Canvas canvas) 此方法在API级别17中已弃用。此API已删除且不受支持。 不使用。 |
void |
unlockCanvasAndPost(Canvas canvas) |
void |
writeToParcel(Parcel dest, int flags) 将此对象平铺到一个包裹中。 |
Protected methods |
|
---|---|
void |
finalize() 当垃圾收集确定没有更多对该对象的引用时,由对象上的垃圾回收器调用。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
|
From interface android.os.Parcelable
|
Surface (SurfaceTexture surfaceTexture)
从SurfaceTexture
创建曲面。 绘制到Surface上的图像将被提供给SurfaceTexture
,它可以通过updateTexImage()
将它们附加到OpenGL ES纹理。
Parameters | |
---|---|
surfaceTexture |
SurfaceTexture : The SurfaceTexture that is updated by this Surface. |
Throws | |
---|---|
Surface.OutOfResourcesException |
if the surface could not be created. |
int describeContents ()
描述此Parcelable实例的封送表示中包含的特殊对象的种类。 例如,如果对象在writeToParcel(Parcel, int)
的输出中包含writeToParcel(Parcel, int)
,则此方法的返回值必须包含CONTENTS_FILE_DESCRIPTOR
位。
Returns | |
---|---|
int |
a bitmask indicating the set of special object types marshaled by this Parcelable object instance. |
boolean isValid ()
如果此对象包含有效曲面,则返回true。
Returns | |
---|---|
boolean |
True if it holds a physical surface, so lockCanvas() will succeed. Otherwise returns false. |
Canvas lockCanvas (Rect inOutDirty)
获取一个Canvas
绘制到这个表面。 在绘制到提供的Canvas
,调用者必须调用unlockCanvasAndPost(Canvas)
以将新内容发布到表面。
Parameters | |
---|---|
inOutDirty |
Rect : A rectangle that represents the dirty region that the caller wants to redraw. This function may choose to expand the dirty rectangle if for example the surface has been resized or if the previous contents of the surface were not available. The caller must redraw the entire dirty region as represented by the contents of the inOutDirty rectangle upon return from this function. The caller may also pass null instead, in the case where the entire surface should be redrawn. |
Returns | |
---|---|
Canvas |
A canvas for drawing into the surface. |
Throws | |
---|---|
IllegalArgumentException |
If the inOutDirty rectangle is not valid. |
Surface.OutOfResourcesException |
If the canvas cannot be locked. |
Canvas lockHardwareCanvas ()
获取一个Canvas
绘制到这个表面。 在绘制到提供的Canvas
,调用者必须调用unlockCanvasAndPost(Canvas)
将新内容发布到表面。 与lockCanvas(Rect)
不同,这将返回硬件加速画布。 有关硬件加速画布中支持和不支持的列表,请参见unsupported drawing operations 。 每次调用lockHardwareCanvas()
也需要完全覆盖表面,因为帧之间不保留缓冲区。 部分更新不受支持。
Returns | |
---|---|
Canvas |
A canvas for drawing into the surface. |
Throws | |
---|---|
IllegalStateException |
If the canvas cannot be locked. |
String toString ()
返回对象的字符串表示形式。 一般来说, toString
方法返回一个“文本表示”该对象的字符串。 结果应该是一个简洁但内容丰富的表述,对于一个人来说很容易阅读。 建议所有子类重写此方法。
类Object
的toString
方法返回一个字符串,其中包含对象为实例的类的名称,符号字符“ @
”以及对象的哈希代码的无符号十六进制表示形式。 换句话说,这个方法返回一个字符串,其值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())
Returns | |
---|---|
String |
a string representation of the object. |
void unlockCanvas (Canvas canvas)
This method was deprecated in API level 17.
This API has been removed and is not supported. Do not use.
Parameters | |
---|---|
canvas |
Canvas
|
void unlockCanvasAndPost (Canvas canvas)
将 Canvas
的新内容 Canvas
到表面并释放 Canvas
。
Parameters | |
---|---|
canvas |
Canvas : The canvas previously obtained from lockCanvas(Rect) . |
void writeToParcel (Parcel dest, int flags)
将此对象平铺到一个包裹中。
Parameters | |
---|---|
dest |
Parcel : The Parcel in which the object should be written. |
flags |
int : Additional flags about how the object should be written. May be 0 or PARCELABLE_WRITE_RETURN_VALUE . |
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 |