【问题标题】:How to show image using ImageView in Android如何在 Android 中使用 ImageView 显示图像
【发布时间】:2026-01-22 04:05:02
【问题描述】:

我正在寻找将图像 src 分配给图像视图控件的方法。我读了几个例子,他们说了一些 src="@drawable\image" 但不明白这一点,我也想在运行时通过 java 代码分配图像 src 也想在 XML 中应用默认图像。

【问题讨论】:

标签: android imageview


【解决方案1】:

如果要在手机上显示图片文件,可以这样做:

private ImageView mImageView;
mImageView = (ImageView) findViewById(R.id.imageViewId);
mImageView.setImageBitmap(BitmapFactory.decodeFile("pathToImageFile"));

如果您想从可绘制资源中显示图像,请执行以下操作:

private ImageView mImageView;
mImageView = (ImageView) findViewById(R.id.imageViewId);
mImageView.setImageResource(R.drawable.imageFileId);

您将在项目res 文件夹中找到drawable 文件夹。你可以把你的图片文件放在那里。

【讨论】:

  • 谢谢Michell,我在我的项目中创建了一个Images文件夹,里面有一个png图像Black_x.png,那么这里解码图像的路径应该是什么,应该是Images\Black_x。 png ?
  • 你应该把你的图片放在/res/的drawable文件夹中。为每个文件夹(即 hdpi 和 mdpi)使用不同大小的图像是个好主意。然后使用setImageResource(R.drawable.black_x)
  • 再次感谢,但是当我在这里使用 R.id.imageViewId 时,我没有得到任何 id 选项意味着当我输入 R.id 时它说 id 无效
  • 我真的不知道如何解释它,因为它很简单。将图像文件放在 /res/drawable/ 文件夹中(如果没有可绘制文件夹,请使用 drawable-mhdpi 或类似文件)。如果您的图像文件名为“black_x.jpg”,Android 将自动创建对该图像的引用,并将其文件名作为 ID - 即 R.id.black_x。
  • @MichellBak 什么时候创建 ID 文件?
【解决方案2】:

你可以像这样在 XML 文件中设置 imageview:

<ImageView
    android:id="@+id/image1"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"
    android:src="@drawable/imagep1" />

您可以在 android java 文件中定义图像视图,例如:

ImageView imageView = (ImageView) findViewById(R.id.imageViewId);

并使用drawable设置图像:

imageView.setImageResource(R.drawable.imageFileId);

并使用您的内存文件夹设置图像,例如:

File file = new File(SupportedClass.getString("pbg"));
if (file.exists()) {
        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inPreferredConfig = Bitmap.Config.ARGB_8888;
        Bitmap selectDrawable = BitmapFactory.decodeFile(file.getAbsolutePath(), options);
        imageView.setImageBitmap(selectDrawable);
}
else
{
      Toast.makeText(getApplicationContext(), "File not Exist", Toast.LENGTH_SHORT).show();
}

【讨论】:

    【解决方案3】:

    在 res 文件夹中选择要在其中查看图像的 XML 文件,

    <ImageView
            android:id="@+id/image1"
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content"
            android:src="@drawable/imagep1" />
    

    【讨论】:

      【解决方案4】:

      应该是 @drawable/image 其中 image 可以有任何扩展名,例如:image.pngimage.xml em>,image.gif。 Android 会自动在 R 类中创建一个引用其名称的引用,因此您不能在任何可绘制文件夹中拥有 image.png 和 image.gif。

      【讨论】:

        【解决方案5】:

        将图像从硬盘拖到项目中的 Drawable 文件夹,并在代码中像这样使用它:

        ImageView image;
        
        image = (ImageView) findViewById(R.id.yourimageviewid);
        image.setImageResource(R.drawable.imagename);
        

        【讨论】: