我在使用相机时遇到问题。
打开应用程序时,在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));
}
}
P.S。 我尝试使用“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));
}
}
}
答案 0 :(得分:0)
我认为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();
答案 1 :(得分:0)
喔。这是我的错。我忘了onResume中的变量状态检查。现在它适用于旧代码。谢谢。问题解决了。