首页 > 解决方案 > 如何将相机图像传递给另一个活动?

问题描述

我看到了一段关于如何在 android studio 上设置摄像头访问权限的视频,但我当前的活动中没有太多空间,所以我在图像上创建了一个 clicklistener,当用户点击图像时,它会转到另一个活动,其中图像看起来更大,但是当我单击图像时,它会转到其他活动但不显示图像。我看到了其他问题,但或者他们询问如何传递可绘制资源上的图像,或者答案不适合我。

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_fazer_perguntas);
        photoCamera = (RelativeLayout) findViewById(R.id.photoCamera);

        photo = (ImageView) findViewById(R.id.photo);
        photo2 = (ImageView) findViewById(R.id.photo2);
        photo3 = (ImageView) findViewById(R.id.photo3);

        photoCamera.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent camera = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                startActivityForResult(camera,0);
            }
        });

        photo.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent p = new Intent(getApplicationContext(),BigPhoto.class);
                p.putExtra("idphoto",photo.getId());
                p.putExtra("idphoto2",photo2.getId());
                p.putExtra("idphoto3",photo3.getId());
                startActivity(p);
            }
        });
        {
         @Override
    protected void onActivityResult (int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (resultCode == RESULT_OK) {
            Bitmap bitmap = (Bitmap)data.getExtras().get("data");
        photo.setImageBitmap(bitmap);
        Intent selfiSrc = new Intent(this, BigPhoto.class);
        selfiSrc.putExtra("data",bitmap);
        startActivity(selfiSrc); 
        }

    }
}

这是我的第一个活动 java 类的一部分。photo2 和 photo3 是其他图像视图,我将对照片做同样的事情。

package com.example.ritalopes.help;

import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ImageView;

public class BigPhoto extends AppCompatActivity {

    ImageView photo, photo2, photo3, bigphoto;
    private Uri path;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_big_photo);

        photo = (ImageView) findViewById(R.id.photo);
        photo2 = (ImageView) findViewById(R.id.photo2);
        photo3 = (ImageView) findViewById(R.id.photo3);
        bigphoto = (ImageView) findViewById(R.id.bigphoto);

        Intent pho = getIntent();
        int image1 = pho.getIntExtra("idphoto",0);
        int image2 = pho.getIntExtra("idphoto2",0);
        int image3 = pho.getIntExtra("idphoto3",0);

        Intent take = getIntent();
        Bitmap bitmap = (Bitmap) take.getParcelableExtra("data");

       bigphoto.setImageBitmap(bitmap);

    }}

这是我想将图像传递给的第二个活动 javaclass。我尝试了包含 Uri 的代码,但没有成功。提前感谢您的回复。

标签: androidcameraimageview

解决方案


如果您的目的是发送图像以便在另一个活动中预览图像。我建议你尝试使用这个库。只需将其添加到项目的 gradle 文件中即可。

https://github.com/chathuralakmal/AndroidImagePopup

这个预览图片库有使用毕加索库,你可以展示你的预览是多么容易。它还包含您的关闭按钮。

它对我有帮助,我希望这会节省你的时间。


推荐阅读