如何在Android中使用ImageView显示图片

34

我正在寻找将图片src分配给ImageView控件的方法。我读了一些例子,他们说了一些关于src="@drawable\image"的内容,但我没有理解。同时,我也想在运行时通过Java代码指定图片src,并且在XML中应用默认图片。

请注意:原文中的反斜杠`\`应该改为正斜杠`/`,即src="@drawable/image"

这里有一个很好的教程:http://www.higherpass.com/Android/Tutorials/Working-With-Images-In-Android/。 - Pankaj Kumar
5个回答

71

如果您想在手机上显示图片文件,可以按照以下步骤进行:

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

如果你想要显示来自drawable资源的图片,可以这样做:

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吗? - BreakHead
你应该将图片放在/res/中的drawable文件夹中。最好为每个文件夹使用不同大小的图片(例如hdpi和mdpi)。然后使用setImageResource(R.drawable.black_x) - Michell Bak
再次感谢,但是在这里使用 R.id.imageViewId 时,我没有得到任何 id 选项的意思是当我输入 R.id 时,它会提示无效的 id。 - BreakHead
1
我真的不知道如何用其他方式解释它,因为它非常简单。将图像文件放入/res/drawable/文件夹中(如果没有drawable文件夹,则使用drawable-mhdpi或类似文件夹)。Android会自动创建一个引用该图像的ID,其文件名作为ID - 即如果您的图像文件名为“black_x.jpg”,则ID为R.id.black_x。 - Michell Bak
@MichellBak,它什么时候创建ID文件? - Mr. Unnormalized Posterior
@MichellBak,所以XML文件是问题所在。明白了。 - Mr. Unnormalized Posterior

16

您可以在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);

并使用可绘制的图像来设置图像,例如:

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" />

2
应该使用@drawable/image,其中image可以有任何扩展名,比如:image.pngimage.xmlimage.gif。Android会自动创建一个R类中的引用,所以你不能在任何drawable文件夹中同时拥有image.png和image.gif。

1

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

ImageView image;

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接