我正在嘗試在我的Android應用程序上進行相機預覽。當我嘗試使用我的真實設備時,它會給我黑屏。相機預覽仍然是黑色
這是我的代碼,它不會拋出任何錯誤,但屏幕仍然是黑色的。有任何想法嗎?
import android.app.Activity;
import android.content.Context;
import android.graphics.PixelFormat;
import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.widget.FrameLayout;
public class ARrazerNav extends Activity{
public void onCreate(Bundle savedInstanceState){
try{
super.onCreate(savedInstanceState);
CustomCameraView cv = new CustomCameraView(this.getApplicationContext());
FrameLayout r1 = new FrameLayout(this.getApplicationContext());
setContentView(r1);
r1.addView(r1);
}catch (Exception e) {
// TODO: handle exception
}
}
public class CustomCameraView extends SurfaceView{
Camera camera;
SurfaceHolder previewHolder;
public CustomCameraView(Context ctx){
super(ctx);
previewHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
previewHolder.addCallback(surfaceHolderListener);
}
SurfaceHolder.Callback surfaceHolderListener = new SurfaceHolder.Callback(){
public void surfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub
camera.stopPreview();
camera.release();
}
public void surfaceCreated(SurfaceHolder holder) {
// TODO Auto-generated method stub
camera = Camera.open();
try{
camera.setPreviewDisplay(previewHolder);
}catch (Throwable th) {
// TODO: handle exception
}
}
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
// TODO Auto-generated method stub
Parameters params = camera.getParameters();
params.setPreviewSize(width, height);
params.setPictureFormat(PixelFormat.JPEG);
camera.setParameters(params);
camera.startPreview();
}
};
}
}
有人可以給我一些解釋,爲什麼它給了我黑屏嗎?
感謝daneel。我嘗試,這是工作。 – DevYudh 2011-12-27 06:55:43