如何在 Android 视觉 CameraSource 中添加放大/缩小手势

Posted

技术标签:

【中文标题】如何在 Android 视觉 CameraSource 中添加放大/缩小手势【英文标题】:How can I add zoom in/out gesture in Android vision CameraSource 【发布时间】:2017-04-08 14:38:33 【问题描述】:

我正在尝试开发一个带有面部检测功能的简单相机应用程序,并且我正在使用此处的 android-vision 示例 https://github.com/googlesamples/android-vision/tree/master/visionSamples/FaceTracker

一切正常,我需要在其中添加放大/缩小功能。我搜索了 SO,但没有发现任何与视力有关的东西。每个答案都与Camera2有关。

【问题讨论】:

这个问题解决了吗? 【参考方案1】:

你可以试试 startSmoothZoom:

https://developer.android.com/reference/android/hardware/Camera.html#startSmoothZoom(int)

您需要修改 CameraSource 的开源版本才能进行此更改,因为您需要访问其底层 android.hardware.Camera 实例:

https://github.com/googlesamples/android-vision/blob/master/visionSamples/barcode-reader/app/src/main/java/com/google/android/gms/samples/vision/barcodereader/ui/camera/CameraSource.java#L121

【讨论】:

【参考方案2】:

试试这段代码,它可以工作(是的,它是反射)

try 
    cameraSource.apply 
        start(holder)
        javaClass.getDeclaredField("zzg").apply 
            isAccessible = true
            (get(cameraSource) as Camera).apply 
                startSmoothZoom(min(5, parameters.maxZoom))
            
        
    
 catch (e: Throwable) 
    Timber.e(e)

注意zzgCamera 实例的混淆变量,并且每个库版本的名称可能不同

【讨论】:

我的回答是正确的,我不知道为什么它被否决了

以上是关于如何在 Android 视觉 CameraSource 中添加放大/缩小手势的主要内容,如果未能解决你的问题,请参考以下文章

如何授权谷歌云视觉API android

我可以使用我在Android工作室或视觉工作室为ios编写的扑动代码吗?以及如何使用?

关于AI视觉-如何连接使用智能语音开发套件(USB语音开发套件)

带有自定义适配器的 Android ListView 有视觉故障

如何删除视觉材料条目下划线

如何使用 xamarin 表单设置视觉材料输入的边框颜色?