2011-06-28 6 views
2

私はカメラと他のすべてのものの表面ビューを使用しているカメラアプリケーションを作成しています。私は以下のリンクからガイドラインを取った。カメラのカメラのズームコントロールを追加します

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

今、すべてが正常に動作しますが、問題は、私はカメラ内の任意のズームコントロールと明るさのコントロールを参照してください傾けることです。それを設定する方法は私をガイドしてください。

ありがとうございます。

答えて

9

カメラのレイアウトで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> 

次に、あなたのsurfaceChangedメソッドに次のコードを追加するには、cameraActivityに

int currentZoomLevel = 0, maxZoomLevel = 0; 

をこれらの変数を追加します。

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); 
+0

これを見てください:http://stackoverflow.com/questions/20235511/camera-zoom-in-out-functionality-in-custom-camera-null-pointer-exception質問、あなたのソリューションを使用して – Android

2

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); 

に追加するには、Activityクラスにこれらの変数を追加し、 "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

関連する問題