缩放一个SurfaceView将不会导致呈现工件
public方法 | 解释 |
---|---|
void draw(Canvas canvas) | 手动的将各种view渲染到给定的画布上 |
boolean gatherTransparentRegion(Region region) | 当视图层次结构包含一个或多个SurfaceView时,RootView使用它来执行优化。 |
SurfaceHolder getHolder() | 返回SurfaceHolder,用于访问和控制SurfaceView |
void setSecure(boolean isSecure) | 控制表面视图的内容是否应该被视为安全的,防止它出现在屏幕截图中或在非安全显示中被查看。注意,必须在窗口管理器的窗口视图包含窗口之前设置此设置。 |
void setVisibility(int visibility) | surfaceView可见设置 |
void setZOrderMediaOverlay(boolean isMediaOverlay) | surfaceView1是否被放置在另一个surfaceView2视图上 |
setZOrderOnTop(boolean onTop) | 在自己的window内,设置最顶层显示 |
protected的方法
protected方法 | 解释 |
---|---|
void dispatchDraw(Canvas canvas) | 由draw调用绘制子view |
void onAttachedToWindow() | 视图view依附到window上被触发 |
void onDetachedFromWindow() | 视图view从window上分离被触发 |
onMeasure(int widthMeasureSpec, int heightMeasureSpec) | 绘制view的宽高 |
onWindowVisibilityChanged(int visibility) | 在视图持续可见和不可见变化时触发 |
<2> SurfaceHolder API
返回值(abstract) | 方法 | 解释 |
---|---|---|
void | addCallback(SurfaceHolder.Callback callback) | 为整个holder添加回调接口 |
Surface | getSurface() | 直接访问surface对象 |
Rect | getSurfaceFrame() | 获取surface的尺寸大小 |
boolean | isCreating() | 使用这个方法来找出是否在从回调方法创建的过程中。 |
Canvas | lockCanvas() | 开始编辑surface的像素 |
void | unlockCanvasAndPost(Canvas canvas) | 结束编辑surface像素 |
Canvas | lockCanvas(Rect dirty) | 开始编辑surface的像素,但是允许特殊矩形 |
default Canvas | lockHardwareCanvas() | 开始编辑surface的像素,但是返回的画布是硬件加速的 |
void | removeCallback(SurfaceHolder.Callback callback) | 从holder移除回调接口 |
void | setFixedSize(int width, int height) | 修改surface 尺寸 |
void | setFormat(int format) | 设置surface的像素格式 格式: |
abstract void | setKeepScreenOn(boolean screenOn) | 启用或禁用选项,以便在显示该界面时打开屏幕。 |
void | setSizeFromLayout() | 允许Surface根据其容器的布局调整大小 |
<3> SurfaceHolder.Callback接口
重写方法 | 解释 |
---|---|
surfaceChanged(SurfaceHolder holder, int format, int width, int height) | surface改变回调 |
surfaceCreated(SurfaceHolder holder) | surface第一次创建就回调 |
surfaceDestroyed(SurfaceHolder holder) | surface销毁回调 |
<二>Camera2 相关的类
android5.0之后支持的API,主要功能都在android.hardware.camera2中。相关的类有:
1:(以及两个回调 和) 2:(以及回调) 3:(以及两个回调:和) 4:(以及类)+++,这四个类都继承了基类 5:接收数据类android.media. 6:xml布局类: (google demo推荐)或SurfaceView<1>CameraManager
官方文档解释:
一种系统服务管理器,用于检测、描述和连接到照相机设备。 获取该实例的方法:CameraManager manager =(CameraManager)Context.getSystemService(Context.CAMERA_SERVICE);或者 CameraManager manager =(CameraManager)Context. getSystemService(CameraManager.class);返回值 | 方法名 | 解释 |
---|---|---|
CameraCharacteristics | getCameraCharacteristics(String cameraId) | 查询摄像机设备的功能。 |
String[] | getCameraIdList() | 通过标识符返回当前连接的相机设备的列表,包括可能被其他相机API客户端使用的相机。 |
openCamera(String cameraId, CameraDevice.StateCallback callback, Handler handler) | 打开一个带有给定ID的相机的连接。 | |
registerAvailabilityCallback(CameraManager.AvailabilityCallback callback, Handler handler) | 注册一个回调,以获得关于相机设备可用性的通知。 | |
registerTorchCallback(CameraManager.TorchCallback callback, Handler handler) | 注册一个回调,以获得关于torch mode状态的通知。 | |
setTorchMode(String cameraId, boolean enabled) | 在不打开相机设备的情况下,设置闪光灯的闪光灯模式。 | |
unregisterAvailabilityCallback(CameraManager.AvailabilityCallback callback) | 删除之前添加的回调,回调将不再接收连接和断开回调。 | |
unregisterTorchCallback(CameraManager.TorchCallback callback) | 删除之前添加的回调,回调将不再接收torch mode状态回调。 |
<1-1>CameraManager.AvailabilityCallback
CameraManager的内部类AvailabilityCallback回调,官方文档解释:
一个用于相机设备的回调或无法打开的回调。