我有一个自定义相机应用程序,有两个活动。第一项活动(MainActivity
)允许用户使用自定义相机拍摄照片。我想在第二个活动(DrawActivity
)中打开这张照片,以便用户最终可以使用它。我的MainActivity
效果很好,相机打开,快照并将图像保存到手机外部存储设备。我在DrawActivity
打开照片时遇到问题。我通过以下代码将我认为是MainActivity
到DrawActivivty
的图像的Uri传递给我:
Intent myIntent = new Intent(MainActivity.this, DrawActivity.class);
myIntent.putExtra("mybitmap",values.toString());
startActivity(myIntent);
定义了值(在我创建上述意图之前):
FileOutputStream fout = new FileOutputStream(imageFile);
fout.write(ostream.toByteArray());
fout.close();
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.DATE_TAKEN,
System.currentTimeMillis());
values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
values.put(MediaStore.MediaColumns.DATA, imageFile.getAbsolutePath());
MainActivity.this.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
我无法让DrawActivity
显示照片。我设置了一个Toast消息,只是为了查看我DrawActivity
收到的内容,我得到了message。我用这个设置了toast代码:
Bundle extras = getIntent().getExtras();
String imageuri = extras.getString("mybitmap");
Toast.makeText(this, imageuri, Toast.LENGTH_LONG).show();
并尝试将其传递到我的图片视图:
ImageView iv = (ImageView) findViewById(R.id.imageDisplay);
Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), Uri.parse(imageuri));
iv.setImageBitmap(bitmap);
iv.setVisibility(View.VISIBLE);
当我在手机上的照片应用程序中提取照片属性时,图像路径为this。我传递了错误的信息吗?太多的信息?我是否错误地解析了传递的信息?