我正在使用以下代码通过相机捕获图像,然后显示它。通过摄像头捕获后显示图像时出现问题?
问题,我面临的是当我拍照并按完成按钮它不显示在我的活动中拍摄的图像。
它只是显示空白图像字段。
任何人指导我我犯了什么错误?可能是路径相关的问题,但我不确定。
protected Button _button;
protected ImageView _image;
protected TextView _field;
protected String _path;
protected boolean _taken;
protected static final String PHOTO_TAKEN = "photo_taken";
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
_image = (ImageView) findViewById(R.id.image);
_field = (TextView) findViewById(R.id.field);
_button = (Button) findViewById(R.id.button);
_button.setOnClickListener(new ButtonClickHandler());
_path = Environment.getExternalStorageDirectory() + "/images/media/make_machine_example.png";
//media/external/images/media/2
}
public class ButtonClickHandler implements View.OnClickListener
{
public void onClick(View view){
Log.i("MakeMachine", "ButtonClickHandler.onClick()");
startCameraActivity();
}
}
protected void startCameraActivity()
{
Log.i("MakeMachine", "startCameraActivity()");
File file = new File(_path);
Uri outputFileUri = Uri.fromFile(file);
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
startActivityForResult(intent,0);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
Log.i("MakeMachine", "resultCode: " + resultCode);
switch(resultCode)
{
case 0:
Log.i("MakeMachine", "User cancelled");
break;
case -1:
onPhotoTaken();
break;
}
}
protected void onPhotoTaken()
{
Log.i("MakeMachine", "onPhotoTaken");
_taken = true;
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 4;
Bitmap bitmap = BitmapFactory.decodeFile(_path, options);
_image.setImageBitmap(bitmap);
_field.setVisibility(View.GONE);
}