我有一个问题,在我的应用程序中使用相机。
当应用程序打开时,在ImageView - "no_photo"图像。
当我点击图片时,相机打开使用意图。
如果我得到图像,应用程序工作完美。但是如果我点击"返回"或"取消",我的代码就不能工作了。我需要在ImageView上设置"no_photo"图像,但结果是我有空页面。
我已经尝试了各种方法,但它们都不起作用:
setImageResource();
setImageDrawable();
这个代码调用相机:
CamPRW.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// create Intent to take a picture and return control to the calling application
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
MainPageActivity.fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE); // create a file to save the image
intent.putExtra(MediaStore.EXTRA_OUTPUT, MainPageActivity.fileUri); // set the image file name
// start the image capture Intent
startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
}
});
OnActivityResult:
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE && resultCode == MainPageActivity.RESULT_OK) {
CamPRW.setImageURI(MainPageActivity.fileUri);
CamPRW.setScaleX(-1.0f);
} else{
CamPRW.setImageDrawable(getResources().getDrawable(R.drawable.no_photo));
}
}
注:我已经尝试过"RESULT_CANCELED"代码,但它不工作太
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {
if (resultCode == MainPageActivity.RESULT_OK) {
CamPRW.setImageURI(MainPageActivity.fileUri);
CamPRW.setScaleX(-1.0f);
}
if (resultCode == MainPageActivity.RESULT_CANCELED) {
CamPRW.setImageDrawable(getResources().getDrawable(R.drawable.no_photo));
}
}
}
我认为onActivityResult
在返回/取消按钮上获得呼叫添加code snippet
上返回/取消按钮点击。在onActivityResult
中添加任何你想要的传递值和处理
Bundle bundle = new Bundle();
bundle .putString(key, value);
Intent i = getIntent(); //gets the intent that called this intent
i.putExtras(bundle);
setResult(Activity.RESULT_OK, i);
finish();
哦。是我的错。我忘了在onResume中检查变量状态。现在它可以与旧代码一起工作。谢谢。