我一直在尝试使用 API 在 Eclipse for Android 上编写相机应用程序 - 我从下面的链接中获得了这个示例,但是在创建 SurfaceView(下面称为预览)时,该应用程序似乎因 Nullpointerexception 而崩溃。
真的非常感谢任何帮助..我正在尝试学习android相机API并整天坚持这个!
这些是 MainWindow.java 中的几行,它是主要的 Activity...它输出 1 和 2,然后终止。
Log.i(TAG, "1");
preview = new Preview(this);
Log.i(TAG, "2 " + R.id.preview);
((FrameLayout) findViewById(R.id.preview)).addView(preview);
Log.i(TAG, "3");
buttonClick = (Button) findViewById(R.id.buttonClick);
Log.i(TAG, "4");
buttonClick.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Log.i(TAG, "5");
preview.camera.takePicture(shutterCallback, rawCallback,jpegCallback);
}
});
这些是 Preview.java 的前几行
public class Preview extends SurfaceView implements SurfaceHolder.Callback {
private static final String TAG = "PreviewClass";
SurfaceHolder mHolder;
public Camera camera;
Preview(Context context) {
super(context);
// Install a SurfaceHolder.Callback so we get notified when the
// underlying surface is created and destroyed.
Log.i(TAG, "11");
mHolder = getHolder();
Log.i(TAG, "12");
mHolder.addCallback(this);
Log.i(TAG, "13");
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
Log.i(TAG, "trying pre 15");
camera = Camera.open();
try
{
Log.i(TAG, "15");