【发布时间】:2013-03-18 03:05:31
【问题描述】:
这里是 Android 编程新手。
我环顾四周,发现这是一个常见问题,但我并没有真正看到一个简单的解决方法...我正在尝试在 Nexus 7 上运行以下代码(已尝试 AVD 和物理设备)没有任何运气。好像是:
camera.setPreviewDisplay(SurfaceHolder);
但我可能是错的。这是当前代码:
public class MainActivity extends Activity implements SurfaceHolder.Callback{
Camera camera;
SurfaceView surfaceView;
SurfaceHolder surfaceHolder;
boolean previewing = false;;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.cameralayout);
getWindow().setFormat(PixelFormat.UNKNOWN);
surfaceView = (SurfaceView)findViewById(R.id.surfaceview);
surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(this);
}
public void onClick() {
// TODO Auto-generated method stub
if(!previewing){
camera = Camera.open();
if (camera != null){
try {
camera.setPreviewDisplay(surfaceHolder);
camera.startPreview();
previewing = true;
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
大家有什么想法吗?感谢您的帮助!
【问题讨论】:
-
你能发布你的
SurfaceHolder.Callback实现吗? -
它不再崩溃,但我在 try/catch 中放了一个 toast 以显示错误,我得到了 java.lang.NullPointerException。不知道这是否有帮助...干杯!
-
@system32 这基本上是整个代码。我从另一个来源得到它。谢谢。
-
您可以发布该解决方案并标记您自己的答案
标签: java android android-camera surfaceview