【问题标题】:implement Zoom in/out in android camera preview在android相机预览中实现放大/缩小
【发布时间】:2015-08-31 18:09:42
【问题描述】:

我以此为例,效果很好(相机 api,而不是相机 2):http://examples.javacodegeeks.com/android/core/hardware/camera-hardware/android-camera-example/

但是,如何使用 + 和 - 等两个按钮实现放大/缩小?!? 已经搜索了几个小时,但什么都没有。

非常感谢。

【问题讨论】:

  • camera2 api(api 21 及更高版本)或相机 api?
  • 相机 api 我的应用适用于 api 14 +

标签: android camera zooming


【解决方案1】:

试试这个代码,应该会有帮助:-

  case MotionEvent.ACTION_MOVE:

                  if (mode == ZOOM) {
                    float newDist = spacing(event);

                    double zoomDist = newDist-oldDist;

                    if(zoomDist > 0){
                        if(zoomDist > 50 && zoomDist <= 200){

                            if (curZoomLevel < mZoomMax && gestureZoom == 0) {
                                gestureZoom ++;
                                GestureZoomIn();
                            }

                        }else if(zoomDist > 200 && zoomDist <= 300){


                            if (curZoomLevel < mZoomMax && gestureZoom == 1) {

                                gestureZoom ++;
                                GestureZoomIn();
                            }
                        }else if(zoomDist > 300 && zoomDist <= 400){

                            if (curZoomLevel < mZoomMax && gestureZoom == 2) {

                                gestureZoom++;
                                GestureZoomIn();
                            }

 //zoomin   
     private void GestureZoomIn(){
           if (mParameters.isZoomSupported()){
                mZoomMax = mParameters.getMaxZoom();
                if (zoom_text_value<mZoomMax) {
                    zoom_text_value++;
                    curZoomLevel++;
                    zoom_float=zoom_float+0.5;
                    onZoomValueChanged(curZoomLevel);

 //zoomout   
    private void GestureZoomOut(){
           if (mParameters.isZoomSupported()){

                if (0<zoom_text_value) {
                    zoom_text_value--;
                    curZoomLevel--;
                    zoom_float=zoom_float-0.5;
                    onZoomValueChanged(curZoomLevel);

谢谢

【讨论】:

  • 你应该在你的surfaceview上实现这个吗?这也会影响你在缩放时拍摄的照片吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-10
  • 1970-01-01
  • 1970-01-01
  • 2015-02-26
  • 2017-01-10
  • 1970-01-01
  • 2011-10-24
相关资源
最近更新 更多