我已经看到了关于这个问题的其他几个问题,但似乎没有解决我的问题。 我有一个自定义的相机应用,工作正常,一切,但变焦按钮。 这是使用SDK分8靶14我的代码:
@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正在因为吐司显示“59”的代码运行时,而变焦按钮无可奈何。 这是从XML的zoomControl可
<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中。 不知道我做错了。 我添加了一个第二吐司报告如果当按下该按钮的currentZoomLevel被改变和它示出了由每次一得到递增的值。 我也尝试不使用startSmoothZoom,只是设置了变焦与
p.setZoom(currentZoomLevel); or p.setZoomLevel(15);
并没有一个作品无论是。 我的手机,HTC不可思议确实有它的原生相机应用完美的工作变焦。 如果我注释掉的代码zoomControl可部分,一切工作正常,甚至与在那里zoomControl可代码专用相机做工细腻其他所有功能,它只是不放大。