0

同じトピックに関する質問がたくさんありますが、どれも答えをくれませんでした。私は多くの解決策を試しましたが、今のところどれもうまくいきません。

フラグメントでカメラの意図を呼び出し、新しく作成されたファイルに画像を保存する場所に uri を挿入し、次に activityresult で uri を新しいアクティビティに渡し、そこで画像ビューに表示します。次に、アップロードに進みます。

Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
File mImageFile = new File(Environment.getExternalStorageDirectory().getPath()+"/DCIM/" + "Camera/" + File.separator+System.currentTimeMillis()+".jpg");
imageUri = Uri.fromFile(mImageFile);
Log.d("camera", "imageUri: " + imageUri.toString());
intent.putExtra(MediaStore.EXTRA_OUTPUT,imageUri);
startActivityForResult(intent, CAMERACODE);


@Override
public void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode){
case CAMERACODE:{
if (resultCode == Activity.RESULT_OK) {
Intent intent = new Intent(getActivity(), SubmitActivity.class);
intent.putExtra("imageuri", imageUri.toString());
getActivity().startActivity(intent);

および SubmitActivity で:

Bundle extras = getIntent().getExtras();
imageUri = extras.getString("imageuri"); <-- imageUri has the correct path, and the actual file is created and the photo is there. The photo is not showing up on gallery for some reason though, only when browsing the folders. What is the reason for this?
iv = (ImageView) findViewById(R.id.selectedpicture);
iv.setImageURI(Uri.parse(imageUri)); <-- this line causes a NullPointerException.

setImageURI が失敗する理由を説明できる人はいますか? これを行う別の方法はありますか?Samsung Galaxy S3 を使用しています

4

1 に答える 1

0

ivは null で問題ないと思いますimageuri。完了したかどうかをsetContentView確認し、レイアウトにselectedpictureimageView があるかどうかを確認します。

編集:

The photo is not showing up on gallery for some reason though

ギャラリーは、MediaStoreを使用して SD カード上のすべての写真を取得します。しかし、写真を撮ったとき、MediaStoreデータベースは更新されていません。写真をギャラリーに表示するにMediaScanningは、実行する必要があります。この投稿をチェック

于 2012-08-29T03:30:54.560 に答える