【发布时间】:2010-08-30 19:50:58
【问题描述】:
我想制作一个我想使用相机的应用程序,因为在捕获图像后,我想将该图像存储在 SDCard 中并在屏幕上显示该图像。
谁能帮帮我...
谢谢
【问题讨论】:
标签: android
我想制作一个我想使用相机的应用程序,因为在捕获图像后,我想将该图像存储在 SDCard 中并在屏幕上显示该图像。
谁能帮帮我...
谢谢
【问题讨论】:
标签: android
您可以使用以下方法调用系统摄像头:
private void startCameraActivity() {
File file = new File("/sdcard/test/test.jpg");
Uri outputFileUri = Uri.fromFile(file);
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
startActivityForResult(intent, REQUEST_CODE_CAMERA);
}
调用完成后,会得到图片使用onActivityResult:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.i("MakeMachine", "requestCode:"+requestCode + ",resultCode: " + resultCode);
switch(requestCode){
case ModifyUserActivity.REQUEST_CODE_CAMERA:
switch (resultCode) {
case Activity.RESULT_CANCELED:
picFileName = null;
Log.i("MakeMachine", "User cancelled");
break;
case Activity.RESULT_OK:
File file = new File("/sdcard/test/test.jpg");
if(file.exists()){
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 4;
Bitmap bitmap = BitmapFactory.decodeFile(picFileName, options);
imgTakePhoto.setImageBitmap(bitmap);
imgTakePhoto.setVisibility(View.VISIBLE);
}
break;
default:
break;
}
break;
default:
break;
}
}
【讨论】:
使用ACTION_IMAGE_CAPTURE意图启动Camera Activity:
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
startActivityForResult( intent, 0 );
这里有一个详细的例子:http://labs.makemachine.net/2010/03/simple-android-photo-capture/,我认为它适合您的问题,即捕获图像,将其存储在 sd-card 中,然后在 imageview 中显示图像。
享受!!!
【讨论】: