Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在android中将捕获的/画廊图像传递给下一个活动_Java_Android_Bitmap - Fatal编程技术网

Java 如何在android中将捕获的/画廊图像传递给下一个活动

Java 如何在android中将捕获的/画廊图像传递给下一个活动,java,android,bitmap,Java,Android,Bitmap,我想传递捕获的摄像头图像并从“多媒体资料”中选择“图像”,图像应在下一个活动中显示。对于捕获的图像,我的代码工作正常。但从“多媒体资料”中选择图像该图像未在活动中显示 第一项活动 protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode =

我想传递捕获的摄像头图像并从“多媒体资料”中选择“图像”,图像应在下一个活动中显示。对于捕获的图像,我的代码工作正常。但从“多媒体资料”中选择图像该图像未在活动中显示

第一项活动

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
     if (resultCode == RESULT_OK) {
        if (requestCode == REQUEST_CAMERA) {

            Uri selectedImage = data.getData();
            String[] filePathColumn = {MediaStore.Images.Media.DATA};

            Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
            cursor.moveToFirst();

            int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
            //file path of captured image
            imagepath = cursor.getString(columnIndex); 
            //file path of captured image
            File f = new File(imagepath);
            String filename = f.getName();

            /*Toast.makeText(Contact.this, "Your Path:"+imagepath, 2000).show();
            Toast.makeText(Contact.this, "Your Filename:"+filename, 2000).show();*/
            cursor.close();
            //Log.i("image path", imagepath);
            Bitmap imageData = BitmapFactory.decodeFile(imagepath);
            // Bitmap imageData = null;
             imageData = (Bitmap) data.getExtras().get("data");

             Intent i = new Intent(this, Cam.class);
             i.putExtra("name", imageData );
             startActivity(i);
            //imageview.setImageBitmap(bit);
        }



        else if (requestCode == SELECT_FILE) {
                //Bitmap photo = (Bitmap) data.getData().getPath(); 

                Uri selectedImageUri = data.getData();
                imagepath = getPath(selectedImageUri, null);

                 // your bitmap
                //ByteArrayOutputStream bs = new ByteArrayOutputStream();
                Bitmap imageData = BitmapFactory.decodeFile(imagepath);                                                                                               
                imageData = (Bitmap) data.getExtras().get("data");
                Intent intent = new Intent(this, Cam.class);
                intent.putExtra("name", imageData );
                 startActivity(intent);
第二项活动

protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.cam);

      Bitmap bitmap  = getIntent().getExtras().getParcelable("name");
        ImageView view = (ImageView) findViewById(R.id.imageView1);
        view.setImageBitmap(bitmap); 



        }
并在另一端检索它:

Intent intent = getIntent();
Bitmap bitmap = (Bitmap) intent.getParcelableExtra("BitmapImage");

要启动另一个活动并接收返回结果,请调用startActivityForResult()(而不是startActivity()

在startActivityForResult中,传递图像URI和下一个上下文


我认为这在你的场景中应该足够了

您可以使用bundle传递到另一个活动。

如果映像在您的设备中,您可以传递映像的路径。而不是从路径显示。

使用此选项

Intent intent = new Intent(this, NewActivity.class);
intent.putExtra("path", imagepath);
在下一个活动中,检索为

String image_path = getIntent().getStringExtra("path");
Bitmap bitmap = BitmapFactory.decodeFile(image_path);
imageview.setImageBitmap(bitmap);

为什么不将
imagepath
传递到下一个活动并在那里解码呢?最好将图像路径作为StringExtra传递到下一个活动。您可以简单地将图像路径传递到下一个活动,然后使用BitmapFactory解码该路径。这对捕获的图像很有效,但从gallery中选择图像在活动..请帮助我..将imagepath字符串设置为全局,并将其传递给下一个活动。此答案不被接受。这必须是评论。!!它仍然没有显示预览..它显示错误。。。Activity com.sec.android.gallery3d.app.Gallery已泄漏IntentReceiver com.sec.samsung.Gallery.view.albumview.AlbumViewState$21@42a874c0原来是在这里注册的。是否缺少对unregisterReceiver()的调用?03-11 18:31:15.392:E/ActivityThread(12570):android.app.IntentReceiver泄漏:Activity com.sec.android.gallery3d.app.Gallery已泄漏IntentReceiver com.sec.samsung.Gallery.view.albumview.AlbumViewState$21@42a874c0原来是在这里注册的。您是否缺少对unregisterReceiver()的调用?:谢谢,工作正常,但我想在显示gallery image时在imageview中同时显示相机/gallery image。相机捕获的图像不工作。请帮助。是否将imagepath字符串设为全局?是的,我已声明imagepath全局…如何在第二个类中同时显示两个视图
String image_path = getIntent().getStringExtra("path");
Bitmap bitmap = BitmapFactory.decodeFile(image_path);
imageview.setImageBitmap(bitmap);