Most visited

Recently visited

Added in API level 1

Surface

public class Surface
extends Object implements Parcelable

java.lang.Object
   ↳ android.view.Surface


处理由屏幕合成器管理的原始缓冲区。

Summary

Nested classes

class Surface.OutOfResourcesException

当Canvas无法用lockCanvas(Rect)锁定,或无法成功分配SurfaceTexture时抛出异常。

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)

SurfaceTexture创建曲面。

Public methods

int describeContents()

描述此Parcelable实例的封送表示中包含的特殊对象的种类。

boolean isValid()

如果此对象包含有效曲面,则返回true。

Canvas lockCanvas(Rect inOutDirty)

获取一个 Canvas绘制到这个表面。

Canvas lockHardwareCanvas()

获取一个 Canvas绘制到这个表面。

void readFromParcel(Parcel source)
void release()

释放对服务器端表面的本地引用。

String toString()

返回对象的字符串表示形式。

void unlockCanvas(Canvas canvas)

此方法在API级别17中已弃用。此API已删除且不受支持。 不使用。

void unlockCanvasAndPost(Canvas canvas)

Canvas的新内容 Canvas到表面并释放 Canvas

void writeToParcel(Parcel dest, int flags)

将此对象平铺到一个包裹中。

Protected methods

void finalize()

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

Inherited methods

From class java.lang.Object
From interface android.os.Parcelable

Constants

ROTATION_0

Added in API level 1
int ROTATION_0

旋转常数:0度旋转(自然方向)

常量值:0(0x00000000)

ROTATION_180

Added in API level 1
int ROTATION_180

旋转常数:180度旋转。

常量值:2(0x00000002)

ROTATION_270

Added in API level 1
int ROTATION_270

旋转常数:270度旋转。

常量值:3(0x00000003)

ROTATION_90

Added in API level 1
int ROTATION_90

旋转常数:90度旋转。

常数值:1(0x00000001)

Fields

CREATOR

Added in API level 1
Creator<Surface> CREATOR

Public constructors

Surface

Added in API level 14
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.

Public methods

describeContents

Added in API level 1
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.

isValid

Added in API level 1
boolean isValid ()

如果此对象包含有效曲面,则返回true。

Returns
boolean True if it holds a physical surface, so lockCanvas() will succeed. Otherwise returns false.

lockCanvas

Added in API level 1
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.

lockHardwareCanvas

Added in API level 23
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.

readFromParcel

Added in API level 1
void readFromParcel (Parcel source)

Parameters
source Parcel

release

Added in API level 14
void release ()

释放对服务器端表面的本地引用。 当你完成一个Surface时总是调用release()。 这会使表面无效。

toString

Added in API level 1
String toString ()

返回对象的字符串表示形式。 一般来说, toString方法返回一个“文本表示”该对象的字符串。 结果应该是一个简洁但内容丰富的表述,对于一个人来说很容易阅读。 建议所有子类重写此方法。

ObjecttoString方法返回一个字符串,其中包含对象为实例的类的名称,符号字符“ @ ”以及对象的哈希代码的无符号十六进制表示形式。 换句话说,这个方法返回一个字符串,其值等于:

 getClass().getName() + '@' + Integer.toHexString(hashCode())
 

Returns
String a string representation of the object.

unlockCanvas

Added in API level 1
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

unlockCanvasAndPost

Added in API level 1
void unlockCanvasAndPost (Canvas canvas)

Canvas的新内容 Canvas到表面并释放 Canvas

Parameters
canvas Canvas: The canvas previously obtained from lockCanvas(Rect).

writeToParcel

Added in API level 1
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.

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!