добавить элементы управления масштабированием камеры в камеру - PullRequest
2 голосов
/ 28 июня 2011

Я делаю приложение для камеры, в котором я использую Surface View для камеры и всех других вещей.Я взял руководство по следующей ссылке.

http://www.brighthub.com/mobile/google-android/articles/43414.aspx

Теперь все работает нормально, но проблема в том, что я не вижу никаких элементов управления масштабированием и яркости в камере.Как установить, пожалуйста, Направь меня.

Заранее спасибо

Ответы [ 2 ]

9 голосов
/ 29 сентября 2011

В макете камеры добавьте ZoomControls.

<ZoomControls
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/surface_camera"
android:layout_centerInParent="true"
android:id="@+id/CAMERA_ZOOM_CONTROLS">
</ZoomControls>

добавить эти переменные в вашу камеру. Активность

int currentZoomLevel = 0, maxZoomLevel = 0;

Затем добавьте следующий код в ваш метод surfaceChanged.

    ZoomControls zoomControls = (ZoomControls) findViewById(R.id.CAMERA_ZOOM_CONTROLS);

    if(params.isZoomSupported()){    
    maxZoomLevel = params.getMaxZoom();

    zoomControls.setIsZoomInEnabled(true);
        zoomControls.setIsZoomOutEnabled(true);

        zoomControls.setOnZoomInClickListener(new OnClickListener(){
            public void onClick(View v){
                    if(currentZoomLevel < MAX_ZOOM){
                        currentZoomLevel++;
                        camera.startSmoothZoom(currentZoomLevel);
                    }
            }
        });

    zoomControls.setOnZoomOutClickListener(new OnClickListener(){
            public void onClick(View v){
                    if(currentZoomLevel > 0){
                        currentZoomLevel--;
                        camera.startSmoothZoom(currentZoomLevel);
                    }
            }
        });    
   }
   else
     zoomControls.setVisibility(View.GONE);
2 голосов
/ 04 февраля 2015

добавьте эти переменные в свой класс деятельности

int currentZoomLevel = 0, maxZoomLevel = 0;
private Parameters params;
private Camera mCamera;
private LayoutInflater controlInflater = null;

добавьте в свой метод onCreate

controlInflater = LayoutInflater.from(getBaseContext());
    View viewControl = controlInflater.inflate(R.layout.custom, null);
    LayoutParams layoutParamsControl = new LayoutParams(LayoutParams.MATCH_PARENT, 
                                                        LayoutParams.MATCH_PARENT);
    this.addContentView(viewControl, layoutParamsControl);

         ZoomControls zoomControls = (ZoomControls) findViewById(R.id.zoomControls1);        

         if (params.isZoomSupported()) {
         final int maxZoomLevel = params.getMaxZoom();
         Log.i("max ZOOM ", "is " + maxZoomLevel);
         zoomControls.setIsZoomInEnabled(true);
         zoomControls.setIsZoomOutEnabled(true);

         zoomControls.setOnZoomInClickListener(new OnClickListener(){
         public void onClick(View v){
         if(currentZoomLevel < maxZoomLevel){
         currentZoomLevel++;
         //mCamera.startSmoothZoom(currentZoomLevel);
         params.setZoom(currentZoomLevel);
         mCamera.setParameters(params);
         }
         }
         });

         zoomControls.setOnZoomOutClickListener(new OnClickListener(){
         public void onClick(View v){
         if(currentZoomLevel > 0){
         currentZoomLevel--;
         params.setZoom(currentZoomLevel);
         mCamera.setParameters(params);
         }
         }
         }); 
         }
         else
         zoomControls.setVisibility(View.GONE);

добавьте это в свой собственный макет с именем "custom.xml"

    <ZoomControls
    android:id="@+id/zoomControls1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="80dp"
    android:layout_marginTop="200dp" />

Если я помогу вам каким-либо образом, помогите мне и проверьте мой канал на YouTube СПАСИБО.https://www.youtube.com/watch?v=MSdghmyCrOE?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...