>首先以camera2 api android为例,有一个开源谷歌示例代码. https://github.com/googlesamples/android-Camera2Basic

>对于要绘制矩形的部分(触摸要对焦)的第二步,请按照以下步骤操作 –

>创建一个扩展到SurfaceView的自定义类.

>在此自定义类中调用onTouchListener方法以检测手指坐标并使用android中的paint类绘制矩形.

– 在您的TextureView上方添加此自定义类,该类显示来自camera2的预览.

>将自定义视图变为透明.

>最后当您在设备屏幕上的某个点触摸时,将调用onTouchListener,它将在您在相机预览上方添加的自定义视图的画布上绘制.

>最后清除你的画布,这样就不会在自定义视图中添加矩形,因为你需要在一个时间点使用一个矩形.

>如果一段时间没有触摸,矩形也会消失.使用自定义视图中的处理程序执行此操作

我在这里给你一个经过测试的代码来做到这一点.我希望它可以帮助你.最好的运气.

private class CustomView extends SurfaceView {

private final Paint paint;

private final SurfaceHolder mHolder;

private final Context context;

public CustomView(Camera2BasicFragment context) {

super(context.getActivity().getBaseContext());

mHolder = getHolder();

mHolder.setFormat(PixelFormat.TRANSPARENT);

this.context = context.getActivity().getBaseContext();

paint = new Paint(Paint.ANTI_ALIAS_FLAG);

paint.setColor(Color.WHITE);

paint.setStyle(Paint.Style.STROKE);

}

@Override

protected void onDraw(Canvas canvas) {

super.onDraw(canvas);

}

@Override

public boolean onTouchEvent(MotionEvent event) {

if (event.getAction() == MotionEvent.ACTION_DOWN) {

invalidate();

if (mHolder.getSurface().isValid()) {

final Canvas canvas = mHolder.lockCanvas();

Log.d("touch", "touchRecieved by camera");

if (canvas != null) {

Log.d("touch", "touchRecieved CANVAS STILL Not Null");

canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);

canvas.drawColor(Color.TRANSPARENT);

canvas.drawCircle(event.getX(), event.getY(), 100, paint);

mHolder.unlockCanvasAndPost(canvas);

new Handler().postDelayed(new Runnable() {

@Override

public void run() {

Canvas canvas1 = mHolder.lockCanvas();

if(canvas1 !=null){

canvas1.drawColor(0, PorterDuff.Mode.CLEAR);

mHolder.unlockCanvasAndPost(canvas1);

}

}

}, 1000);

}

mHolder.unlockCanvasAndPost(canvas);

}

}

return false;

}

}

android camera textureview,Android SDK – camera2 – 在TextureView上绘制矩...相关推荐

  1. android camera入门,android 基础一 Camera1 预览、拍照

    预览流程: Camera.open-->camera.setPreviewDisplay->camera.startPreview 拍照:camera.takePicture-->保 ...

  2. android camera fragment,Android Camera 模块分析(三)

    第三部分 Camera的主要实现分析 3.1 JAVA程序部分 在packages/apps/Camera/src/com/android/camera/ 目录的Camera.java文件中,包含了对 ...

  3. android camera 分辨率,Android:相机帧分辨率大于640x480(Android: camera frame resolution larger than 640x480)...

    Android:相机帧分辨率大于640x480(Android: camera frame resolution larger than 640x480) 在Android中,您需要将Surface设 ...

  4. android camera zoom,android camera2手柄变焦

    Im新的android camera2 APi. 我只是将我的所有项目移动到新的Camera2 Api.我用Camera2Basic example作为起点.android camera2手柄变焦 林 ...

  5. android camera感光,Android Camera2 每次拍照前触发闪光灯打闪的实现

    如下内容方便有Camera2基础人查看,如不了解Camera2的人不建议查看. 拍照流程 先执行CaptureRequest.CONTROL_AF_TRIGGER_START锁定AF,然后根据回调不断 ...

  6. android camera 废弃,Android相机android.hardware.Camera已弃用

    API文档 根据Android开发人员指南CameraSupport,他们说: 我们建议将新的android.hardware.camera2 API用于新的应用程序. 在关于CameraSuppor ...

  7. android camera工程师,Android从Camera中获取图片的两种方法

    方法一: 此方法会由Camera直接产生照片回传给应用程序,但是返回的是压缩图片,显示不清晰 /**   启动Camera */ private void intentCamera(){ try { ...

  8. android camera 动画,Android 使用Camera创建3D动画

    在Android中,可以使用android.graphics.Camera这个类进行3D变换 之前更改CameraUI的时候,需要做一个切换前后摄像头的翻转动画,刚开始在网上着了一些翻转动画的代码,合 ...

  9. android camera滑动,Android怎么实现小米相机底部滑动指示器

    Android怎么实现小米相机底部滑动指示器 发布时间:2021-04-15 14:39:38 来源:亿速云 阅读:94 作者:小新 这篇文章给大家分享的是有关Android怎么实现小米相机底部滑动指 ...

  10. android camera 动画,android高仿小米时钟(使用Camera和Matrix实现3D效果)

    继续练习自定义View..毕竟熟才能生巧.一直觉得小米的时钟很精美,那这次就搞它~这次除了练习自定义View,还涉及到使用Camera和Matrix实现3D效果. 一个这样的效果,在绘制的时候最好选择 ...

最新文章

  1. Python培训分享:Python发展前景怎么样?
  2. 单片机开发项目全局变量太多怎么管理?
  3. C#中Lock的秘密
  4. 在嵌入式公司和在互联网公司写软件,有什么区别?
  5. 为何Transformer在计算机视觉中如此受欢迎
  6. bootstrap 简介
  7. Java程序怎么运行?
  8. 怎样计算计算机的硬盘大小,硬盘容量大小计算的办法
  9. 联通路由器设置FTP服务器,做家庭储存云盘
  10. 电脑桌面的计算机图双击打不开,win10双击电脑图标打不开必须右键打开
  11. 阿里热更新hotfix
  12. lowB三人组---冒泡排序原理和实现
  13. C# 之 概率随机数
  14. Lenovo UEFI引导U盘 System x Install Windows Server 2016 R2
  15. 测绘遥感地信 国内外期刊大全
  16. 第一个Java程序Hello World(IG牛逼)
  17. 安全狗等级保护建设服务内容有哪些?
  18. gcov的实现原理简介
  19. 简单c语言飞碟射击游戏
  20. MySQL插入数据与系统时间相差12小时

热门文章

  1. pycharm中安装三方库和cmd下载三方库的选择与区别
  2. android图片添加多行文字,Android使用SpannableString实现多行文字开头放置标签图案...
  3. 容器技术Docker K8s 13 容器服务Kubernetes版ACK详解-使用镜像快速创建有状态应用
  4. 【易实战】Spring Cloud微服务架构12要素应用 Twelve‑Factor App
  5. matlab水蒸气焓值计算_暖通干货,巧析焓湿图,焓湿图如何应用?一读就懂不容错过...
  6. jmeter展示内存cpu_Jmeter监控服务器-CPU,Memory,Disk,Network性能指标
  7. 【机器学习系列】隐马尔科夫模型第三讲:EM算法求解HMM参数
  8. HDUacm2095
  9. Keras AlexNet 网络实现 Kaggle 猫狗大战
  10. 使用Caronte在CTF比赛中完成网络流量分析