博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
大大啊啊啊
阅读量:5768 次
发布时间:2019-06-18

本文共 3104 字,大约阅读时间需要 10 分钟。

缩放一个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回调,官方文档解释:

一个用于相机设备的回调或无法打开的回调。

转载于:https://juejin.im/post/5b4d61005188251abe4a146b

你可能感兴趣的文章
PyCharm切换解释器
查看>>
jmp far ptr s所对应的机器码
查看>>
css详解1
查看>>
MySQL类型转换
查看>>
HashSet HashMap 源码阅读笔记
查看>>
变量声明提升1
查看>>
轻量级的Java 开发框架 Spring
查看>>
JS之路——浏览器window对象
查看>>
Chrome教程(二)使用ChromeDevTools命令菜单运行命令
查看>>
数据结构及算法基础--快速排序(Quick Sort)(二)优化问题
查看>>
随笔2013/2/19
查看>>
Windows Phone的Silverlight Toolkit 安装及其使用
查看>>
DBS:同学录
查看>>
Mysql备份系列(1)--备份方案总结性梳理
查看>>
[CareerCup] 1.6 Rotate Image 翻转图像
查看>>
Python中的画图初体验
查看>>
Java程序员的日常 —— 响应式导航Demo
查看>>
objective-c内存管理基础
查看>>
sap关于价值串的说法(转载)
查看>>
Migration to S/4HANA
查看>>