我正在製作一個相機應用程序,在該應用程序中,我使用Surface View作爲相機和其他所有東西。我從以下鏈接中獲取了指導原則。在相機中添加相機的變焦控制
http://www.brighthub.com/mobile/google-android/articles/43414.aspx
現在一切工作正常,但問題是,我看不到任何縮放控制和亮度控制在相機中。如何設置請引導我。
在此先感謝
我正在製作一個相機應用程序,在該應用程序中,我使用Surface View作爲相機和其他所有東西。我從以下鏈接中獲取了指導原則。在相機中添加相機的變焦控制
http://www.brighthub.com/mobile/google-android/articles/43414.aspx
現在一切工作正常,但問題是,我看不到任何縮放控制和亮度控制在相機中。如何設置請引導我。
在此先感謝
在您的相機佈局添加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>
這些變量添加到您的cameraActivity
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);
這些變量添加到您的活動課
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" />
添加此
如果我幫你在任何w唉幫助我,並檢查出我的YouTube頻道感謝。 https://www.youtube.com/watch?v=MSdghmyCrOE?
看起來這樣:http://stackoverflow.com/questions/20235511/camera-zoom-in-out-functionality-in-custom-camera-null-pointer-exception問題,使用你的解決方案 – Android