当前位置: 首页 > 知识库问答 >
问题:

如何将位图图像传输到其他活动?

简滨海
2023-03-14

为什么我的代码不起作用?我想把图像从一个活动转移到另一个活动。请帮忙!注意:我已经创建了一个摄像头功能,这就是我获得图像的地方。

这是主要活动。Java语言

public class MainActivity extends AppCompatActivity {

public static final int CAMERA_REQUEST = 9999;

ImageView imageView1;
Button camera,send;

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

    imageView1 = findViewById(R.id.imageView1);
    camera = findViewById(R.id.camera);
    send = findViewById(R.id.send);

    camera.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent d1 = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            startActivityForResult(d1, CAMERA_REQUEST);
        }
    });

    send.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            imageView1.buildDrawingCache();
            Bitmap bitmap = imageView1.getDrawingCache();

            Intent intent = new Intent(MainActivity.this, ResultActivity.class);  
            intent.putExtra("bp", bitmap);

        }
    });
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    Bitmap bitmap = (Bitmap) data.getExtras().get("data");
    imageView1.setImageBitmap(bitmap);
}
}

这就是结果性。Java语言

public class ResultActivity extends AppCompatActivity {

ImageView imageView2;

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

    imageView2 = findViewById(R.id.imageView2);

    Intent intent = new Intent();
    Bitmap bitmap = intent.getParcelableExtra("bp");
    imageView2.setImageBitmap(bitmap);
    }
}  

如果我做错了什么请告诉我谢谢

共有1个答案

谢宸
2023-03-14

您已经在“OnActivityResult”中接收到的意图中作为Uri接收位图。您所要做的就是使用此意图移动到第二个活动。然后从那里您可以将其转换为位图:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    Intent intent = new Intent(MainActivity.this, ResultActivity.class);  
    intent.putExtra("Some key",data.getData().toString());
    Bitmap bitmap = (Bitmap) data.getExtras().get("data");
    imageView1.setImageBitmap(bitmap);
}
}

关于结果活动:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_result);
    Uri uri = Uri.parse(getIntent.getExtra.getString("Some key"));
    imageView2 = findViewById(R.id.imageView2);
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);

    imageView2.setImageBitmap(bitmap);
    }
}
 类似资料:
  • Activity-2(将所选图像设置为屏幕背景图像的活动)

  • 在上传到服务器之前,我使用了下面的方法来压缩图像。 为了总结下面的代码,我首先从phone/sdcard上获取图像,将其转换为位图,并对位图进行缩放和压缩。然后我将压缩后的位图保存在磁盘上,作为新位置的图像。 这种方法可以将图像从3mb-5mb压缩到30-100kb。(当我检查SD卡上的压缩图像大小时) 然后,我将新压缩的30-100kb图像转换为位图字符串(通过Base64.encodeToSt

  • 我知道如何使用发送捆绑包,但我的代码会导致。但我不知道为什么。 主要活动 维护活动2(此处接收) 这里,哪一部分错了被添加到捆绑包中,但每次抛出时。

  • 问题内容: 我需要做的事情很简单,但是(对我来说)很难做到: 使用 javascript ,给定图像名称,即“ image01.jpg”,我需要检查该图像是否存在于某个文件夹或路径(本地或网络)中。如果该文件夹下不存在该图像,则需要检查另一个文件夹中是否存在同一图像。 例如,使用伪代码 您建议采用哪种方法?我尝试先使用ajax来实现此目的,然后使用javascript的Image()来实现,但是在

  • 使用Glide将URL下载到非常容易: 我想知道我是否也可以下载到中?我想下载到原始位图中,然后我可以使用其他工具进行操作。我已经浏览了代码,但不知道如何操作。

  • 问题内容: 在我的活动中,我创建了一个对象,然后需要启动另一个对象,如何从子活动中传递该对象(将要启动的对象)? 问题答案: 实现,因此你可以始终按以下意图传递它: 并在另一端检索它: