Android ImageView无法显示图片?

39

有人能告诉我为什么以下代码不起作用吗? 图像根本没有出现。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:orientation="vertical"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"

   <ImageView
          android:src="@drawable/splashscreen"
          android:scaleType="center"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content" />

</RelativeLayout>

1
RelativeLayout没有方向..... - Rishabh Srivastava
4
如果你在 Android Api 21 或更低版本中运行应用程序,那么这是一个常见的问题。主要原因是你使用了高分辨率、大尺寸的图片。我建议你缩小图片大小,调整尺寸。 - Amiraslan
1
对我有用,谢谢! - 68060
32个回答

41

在ImageView中有两个选项srcsrcCompact。请尝试两者并找出哪个有效。

android:src="@drawable/slide_view_4"

app:srcCompat="@drawable/slide_view_4"

1
太好了!对我有用。 - Imtee
这是在Android SDK 33中有效的答案。我不得不在android:src上使用app:srcCompat。 - undefined

34
在我的情况下,当我运行应用程序时,所有片段中的imageView都没有显示。问题是,我将我的“Activity”类从“FragmentActivity”扩展。所以我只需将其从“FragmentActivity”更改为“AppCompatActivity”。
也许这可以帮助其他人。

3
我曾经遇到过这种情况。将我的“Activity”更改为“AppCompatActivity”,而不是“FragmentActivity”,完美地解决了问题。同时也没有影响功能。 - WeskerTyrant
哇,没错,我最近为了一些测试将 AppCompatActivity 更改为 FragmentActivity,然后忘记改回来了。现在改回 AppCompatActivity 后图标显示出来了。你知道这背后的原因吗? - Muhammad Saqib

10

你把源图片文件放在哪里了?是在Drawable文件夹下吗?如果是,那么为该图片创建mdpi、hdpi、xhdpi和xxhdpi的图像资源,并将它们放在mdpi、hdpi、xhdpi和xxhdpi文件夹中。


2
嗯,我刚注意到,在任何dpi文件夹中放置图像是行不通的。 - HendraWD

8
这是我在检查布局xml、主题等后找到的解决方案。只需将您的Java类中的“extends Activity”更改为“extends AppCompatActivity”。
如果之前提出的一些解决方案适用于您,那么其他遇到ImageView图像未显示问题的人也可以尝试这种方法。

7

我曾经遇到过同样的问题,我通过扩展 AppCompatActivity 类并将我的图片重命名为正确的标准来解决它。
我的图片名称(之前):splash-1(不起作用)。
然后我尝试将图片名称改为splash1
之后一切都正常了。 注意:图片文件也可能是造成这个问题的原因。


5

在XML文件中,尝试使用app:srcCompat="@drawable/modified"代替tools:srcCompat="@drawable/modified"


这并没有回答问题。一旦您拥有足够的声望,您将能够评论任何帖子;相反,提供不需要询问者澄清的答案。- 来自审核 - nnesterov

4

请使用android:background="@drawable/your_image" 代替 app:srcCompat="@drawable/your_image"


3

代码百分之百有效。我的代码遇到了同样的问题,但是我使用了AppCompatImageView,然后显示了我的图像。

<androidx.appcompat.widget.AppCompatImageView
                android:layout_width="50dp"
                android:layout_height="50dp"
                app:srcCompat="@drawable/ic_calendar"
                />

3

请检查以下内容:

  1. 您是否在UI线程上调用了setContentView(用于启动屏幕)?
  2. 是否有其他活动(或视图)在您的启动屏幕之后太快地显示(即将启动屏幕setContentView设置为null)?
  3. 尝试使用match_parent而不是wrap_content来设置ImageView layout_heightlayout_width

1
我遇到了完全相同的问题,这个答案非常好。 - Blasanka

2

Android ImageView无法显示图片?

对我来说,这些解决方案都没有起作用。我所做的是在我的清单文件中添加以下代码行:

android:hardwareAccelerated="false"

android:largeHeap="true"

如果这些代码行没有解决您的问题,请设置您的ImageView高度和宽度,不要使用wrap content或match parent。如果您的尺寸不起作用,请减少数量并重试。我认为这些解决方案很有帮助。


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