gpt4 book ai didi

java - 从图库中选择一张图片并将其显示在另一个 Activity 中

转载 作者:行者123 更新时间:2023-11-30 02:38:12 25 4
gpt4 key购买 nike

我正在制作一个 android 应用程序,我必须通过单击一个按钮从图库中选择图像,然后在另一个带有两个文本字段的 Activity 中显示它,问题是我能够打开图库并从中选择图像但是我无法在另一个 Activity 中显示图像...这是我的代码...PictureOptions.java

public void buttonGalleryOpen(View view)
{
Intent intent = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, RESULT_LOAD_IMAGE);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Bitmap selectedphoto = null;

super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {

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]);
String filePath = cursor.getString(columnIndex);
selectedphoto = BitmapFactory.decodeFile(filePath);
cursor.close();
Intent intent = new Intent(PictureOptions.this,ShowImage.class);
intent.putExtra("data", selectedphoto);
startActivity(intent);
}

PictureOptions.xml

<Button
android:id="@+id/buttonGalleryOpen"
android:layout_width="fill_parent"
android:layout_height="66dp"
android:layout_weight="0.34"
android:onClick="buttonGalleryOpen"
android:text="@string/button_gallery_open" />

ShowImage.java

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show_image);
ImageView imageview = (ImageView)findViewById(R.id.ImageShow);
Bitmap selectedphoto =(Bitmap)this.getIntent().getParcelableExtra("data");
imageview.setImageBitmap(selectedphoto);
}

ShowImage.xml

 <ImageView
android:id="@+id/ImageShow"
android:layout_width="200dp"
android:layout_height="200dp" />

一切正常,第二个 Activity (ShowImage) 也正在打开,除了没有 iamge 正在显示....不知道为什么..?帮助

最佳答案

您代码中的这一行没有意义:

intent.putExtra("data", "selectedphoto");

您在此处添加的字符串“selectedphoto”与您之前初始化的 selectedphoto 变量没有任何关系。您可以将位图作为字节数组附加到 intent 中,但这效率低下,尤其是当图像很大时。

不是将位图传递给 ShowImage Activity ,而是传递您的 URI,然后在 ShowImage Activity 中检索实际位图,就像您现在在 PictureOptions Activity 中所做的那样。

intent.setData( uri );

在您的 ShowImage Activity 中:

URI imageUri = getIntent().getData();

关于java - 从图库中选择一张图片并将其显示在另一个 Activity 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26175423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com