我已經看到關於此主題的其他幾個問題,但沒有一個能夠解決我的問題。我有一個工作正常的自定義相機應用程序,除縮放按鈕外的所有內容。這是一個使用SDK分8個目標14我的代碼:Android自定義相機變焦不起作用
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
if (isPreviewing){
camera.stopPreview();
}
Camera.Parameters p = camera.getParameters();
p.setPreviewSize(sizes.get(0).width, sizes.get(0).height);
p.setColorEffect(effect);
zoomControls = (ZoomControls) findViewById(R.id.zoomControls);
if (p.isZoomSupported()) {
maxZoomLevel = p.getMaxZoom();
Toast.makeText(PictureTaker.this, String.valueOf(maxZoomLevel),Toast.LENGTH_LONG).show();
zoomControls.setIsZoomInEnabled(true);
zoomControls.setIsZoomOutEnabled(true);
zoomControls.setOnZoomInClickListener(new OnClickListener() {
public void onClick(View v) {
if (currentZoomLevel < maxZoomLevel) {
currentZoomLevel++;
camera.startSmoothZoom(currentZoomLevel);
//Toast.makeText(PictureTaker.this, String.valueOf(currentZoomLevel),Toast.LENGTH_LONG).show();
}
}
});
zoomControls.setOnZoomOutClickListener(new OnClickListener() {
public void onClick(View v) {
if (currentZoomLevel > 0) {
currentZoomLevel--;
camera.startSmoothZoom(currentZoomLevel);
}
}
});
} else {
zoomControls.setVisibility(View.GONE);
}
camera.setParameters(p);
try {
camera.setPreviewDisplay(holder);
} // end try
catch (IOException e) {
Log.v(TAG, e.toString());
} // end catch
camera.startPreview(); // begin the preview
isPreviewing = true;
}
的setColorEffect從選項菜單來了,完美的作品。我知道isZoomSupported和getMaxZoom正在工作,因爲Toast在代碼運行時顯示「59」,但縮放按鈕不起作用。這是從XML
<ZoomControls
android:id="@+id/zoomControls"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="17dp"
android:baselineAligned="false"
android:gravity="center_horizontal"
android:orientation="horizontal" />
我都在清單中的必要權限並沒有錯誤顯示的logcat的zoomControl可。不知道我做錯了什麼。我添加了第二個Toast來報告當按鈕被按下時currentZoomLevel是否被改變,並且它顯示每次增加一個值。我也嘗試不使用startSmoothZoom,只是設置縮放與
p.setZoom(currentZoomLevel); or p.setZoomLevel(15);
而且都不工作。我的手機HTC Incredible在其原生相機應用程序上有一個完美的縮放。如果我註釋掉代碼中的zoomControl部分,一切工作正常,並且即使使用zoomControl代碼,自定義相機的所有其他功能也能正常工作,但它不會縮放。
喜u能幫助我,使用此代碼它不是爲我工作的IM它給空指針異常 – 2013-06-24 05:52:58
冉到與我的HTC同樣的問題。感謝張貼這! – Zac 2017-01-15 20:48:33
即使在三星我面臨同樣的問題。感謝它節省了我的時間 – 2017-06-17 18:41:17