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

打开可绘图库以从中选择图像时出现的问题

阙阳
2023-03-14

我在drawable文件夹(example.jpg,sue.png)中有2个图像。
我想打开drawable文件夹作为一个库来选择一个新的图像,然后新的图像将替换原始图像(在本例中,原始图像是example.jpg)

但是当我打开图库选择新图像时,却没有图像可供选择。
我应该如何解决这个问题?
下面是我的代码

ProfileActivity:

public class ProfileActivity extends AppCompatActivity {
private static final String TAG = "ProfileActivity";

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

    final ImageView exampleImage = (ImageView) this.findViewById(R.id.imageView);
    exampleImage.setImageResource(R.drawable.example);
    exampleImage.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(ProfileActivity.this,GalleryActivity.class);
            startActivityForResult(intent, 3);
        }
    });
}
public class GalleryActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    int image[] = {R.drawable.example, R.drawable.sue};
}

public void imageChooser() {
    // Gallery Intent
    Intent galleryIntent = new Intent();
    galleryIntent.setType("image/*");
    galleryIntent.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(Intent.createChooser(galleryIntent , "Select Picture"), 200);
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK) {
        if (requestCode == 200) {
            // Get the uri
            Uri selectedImageUri = data.getData();
            if (null != selectedImageUri) {
                // update your imageview
                ImageView imageView = findViewById(R.id.imageView);
                imageView.setImageURI(selectedImageUri);
            }
        }
    }
}

XML:

 ImageView
    android:id="@+id/imageView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_centerInParent="true"

共有1个答案

柳墨一
2023-03-14

您的代码中几乎没有问题,让我来帮您找出这些问题。

  1. profileactivity中,startActivityForResult()是不推荐的
  2. GalleryActivity中,尚未调用方法imageChooser()
  3. GalleryActivity,不会膨胀任何UI/布局。
  4. 如果您要打开一个图库的意图,则不需要在新活动中这样做(正如我在前面的问题中评论的那样,从drawable中选择图像,您似乎合并了两种方法。)
  5. 使您的设备中存在图像以选择它们。

遵循这些教程,以便更好地理解;从图库获取图像,

 类似资料:
  • 我正在尝试从图库中浏览一个图像。但我得到以下运行时异常 代码是

  • 当从库中选择图像时,uri为:/storage/emulated/0/pictures/image:49769 我需要:/storage/emulated/0/pictures/image.jpg

  • 我试图显示一个对话框,在那里按下图像按钮,然后从图库中选择图片或从相机中拍摄一些图片。我已经在努力选择一个图像并将其插入到正确的图像视图中。 现在,单击ImageButton(android:id=“@ id/imageSelect”)将显示对话框,然后选择从图库中选择,但它将图像插入(android:id=“@ id/imageSelect1),应该插入到(android:id=”@ id/im

  • 在“开发者选项”设置中,我使用“不保留活动”模式。我需要从画廊选择图像,并在我的应用程序中使用它的URI。打开图库以选取图像的代码是: 当我选择图像时发生问题。“请等待...”显示消息,然后我返回图库中的“选择图像”。打开此模式时,HTC One X设备会发生这种情况。在三星Galaxy S3中不会出现此问题。当此模式打开时,如何在HTC ONE X设备上解决它?

  • 我想打开画廊与多个图像选择功能,我使用以下代码。 它会打开gallery应用程序,但不允许我选择多个图像。