android - 如何将相机图像传递给另一个活动?
问题描述
我看到了一段关于如何在 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 的代码,但没有成功。提前感谢您的回复。
解决方案
如果您的目的是发送图像以便在另一个活动中预览图像。我建议你尝试使用这个库。只需将其添加到项目的 gradle 文件中即可。
https://github.com/chathuralakmal/AndroidImagePopup
这个预览图片库有使用毕加索库,你可以展示你的预览是多么容易。它还包含您的关闭按钮。
它对我有帮助,我希望这会节省你的时间。
推荐阅读
- django - D3v5 和 Django Rest 框架
- java - 如何在 Java 中遍历每个纬度/经度
- python - Python 如何在没有欺骗的情况下发送 ICMP 数据包?
- powershell - 如何在 Format-Table 中获取服务器名称?
- javascript - Sqlite html5在插入时重复记录
- c# - 如何在 asp.net core 2.0 IHostedService 中注入 autofac 依赖项
- java - 在 Eclipse 中运行 PHPUnit 测试会生成 java.util.ConcurrentModificationException
- css - 文章 ID 的 CSS 通配符
- python - 如何正确写入 CSV 文件?
- r - 更改 mahattan 图中暗示线的值