我想获取camera的图像并显示出来。可是却黑屏。
代码如下public class CameraTest extends Activity implements SurfaceHolder.Callback {
/** Called when the activity is first created. */
private Camera mCamera = null;
private SurfaceView surfaceView = null;
private SurfaceHolder surfaceHolder = null;
private int intScreenX = 0;
private int intScreenY = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
intScreenX = displayMetrics.widthPixels;
intScreenY = displayMetrics.heightPixels;
surfaceView = (SurfaceView)findViewById(R.id.surfaceView1);
if (surfaceView != null) {
System.out.println("ok");
}else {
System.out.println("error");
}
surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(CameraTest.this);
InitCamera();
} private void InitCamera (){
try {
mCamera = Camera.open();
} catch (Exception e) {
// TODO: handle exception
System.out.println("无法打开相机");
}
try {
//Camera.Parameters parameters = mCamera.getParameters();
//parameters.setPreviewSize(intScreenX, intScreenY);
//mCamera.setParameters(parameters);
mCamera.setPreviewDisplay(surfaceHolder);
mCamera.startPreview();
} catch (Exception e) {
// TODO: handle exception
System.out.println("错误发生");
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
// TODO Auto-generated method stub
} @Override
public void surfaceCreated(SurfaceHolder holder) {
// TODO Auto-generated method stub
} @Override
public void surfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub
}
}已经加入
<uses-permission android:name="android.permission.CAMERA"></uses-permission>我用的机器是M9。
代码如下public class CameraTest extends Activity implements SurfaceHolder.Callback {
/** Called when the activity is first created. */
private Camera mCamera = null;
private SurfaceView surfaceView = null;
private SurfaceHolder surfaceHolder = null;
private int intScreenX = 0;
private int intScreenY = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
intScreenX = displayMetrics.widthPixels;
intScreenY = displayMetrics.heightPixels;
surfaceView = (SurfaceView)findViewById(R.id.surfaceView1);
if (surfaceView != null) {
System.out.println("ok");
}else {
System.out.println("error");
}
surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(CameraTest.this);
InitCamera();
} private void InitCamera (){
try {
mCamera = Camera.open();
} catch (Exception e) {
// TODO: handle exception
System.out.println("无法打开相机");
}
try {
//Camera.Parameters parameters = mCamera.getParameters();
//parameters.setPreviewSize(intScreenX, intScreenY);
//mCamera.setParameters(parameters);
mCamera.setPreviewDisplay(surfaceHolder);
mCamera.startPreview();
} catch (Exception e) {
// TODO: handle exception
System.out.println("错误发生");
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
// TODO Auto-generated method stub
} @Override
public void surfaceCreated(SurfaceHolder holder) {
// TODO Auto-generated method stub
} @Override
public void surfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub
}
}已经加入
<uses-permission android:name="android.permission.CAMERA"></uses-permission>我用的机器是M9。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货