Android ImageView无法显示图像?

时间:2012-03-21 03:50:54

标签: java android imageview

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

<?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>

27 个答案:

答案 0 :(得分:22)

就我而言,当我运行我的应用程序时,我的所有片段的imageView都没有显示。问题是,我将“活动”类扩展为“ FragmentActivity ”。所以我只是将其改为“ FragmentActivity ”改为“ AppCompatActivity

也许这会对某人有所帮助。

答案 1 :(得分:9)

你把源图像文件放在哪里?那是在Drawable文件夹下吗?如果是,则为图像创建mdpi,hdpi,xhdpi,xxhdpi图像源,并将它们放在mdpi,hdpi,xhdpi,xxhdpi文件夹中。

答案 2 :(得分:6)

这是在检查布局xml,主题等之后为我工作的解决方案。只需将“扩展活动”从java类更改为“扩展AppCompatActivity”。

如果以前建议的某些解决方案适用于您,那么其他具有相同问题但未显示ImageView图像的人也可以尝试这样做。

答案 3 :(得分:5)

在ImageView中,有两个选项 src srcCompact 。尝试两个都找出哪个是可行的。

android:src="@drawable/slide_view_4"

app:srcCompat="@drawable/slide_view_4"

答案 4 :(得分:3)

检查以下内容:

  1. 您是否在UI线程上调用setContentView(用于启动画面)
  2. 在启动画面之后是否有其他活动(或视图)显示得太快(即取消启动画面setContentView)?
  3. 尝试在ImageView layout_heightlayout_width上使用match_parent而不是wrap_content。

答案 5 :(得分:2)

空位图=无法使用的图像。

这是实际使用图像的基础。当在android中使用图像并且它被分配时,它实际上将图像转换为位图,并且根据某些参数的大小和各种其他因素,它可能会失败,这将导致您的图像被转换并返回为null发生了一些失败。

答案 6 :(得分:2)

尝试用android:background="@drawable/your_image"代替app:srcCompat="@drawable/your_image"

答案 7 :(得分:2)

您的可绘制文件的格式是什么? Android主要使用.PNG

答案 8 :(得分:2)

我遇到了同样的问题,并通过扩展AppCompatActivity并将其图像重命名为正确的标准来解决了这个问题。
我的图片名称(以前): splash-1 (没有用)。
然后,我尝试将图片名称重命名为 splash1
之后,一切正常。 注意:图像文件也可能是导致此问题的原因。

答案 9 :(得分:1)

尝试检查图像的名称 例如:“ img-icon-butterfly.png”这些类型的名称应重命名,而“-”应删除,因此应使用“ imgbutterfly.png”之类的名称

答案 10 :(得分:1)

我有同样的问题。我真的不敢相信它有多简单。虽然这对你来说可能不是问题,但这对我来说是固定的。我的图片文件已命名 SS-logo.png。 Android Studio不允许在图像文件中使用破折号。一旦我将其更改为ss_logo.png,它就能完美运行。仅在图像文件名中使用字母,数字和下划线。希望这会有所帮助。

答案 11 :(得分:1)

在我的情况下,从图像列表中选择图像时,图像不可见。

重建项目为我修好了。

构建 - &gt;重建项目

答案 12 :(得分:1)

  

不要自己创建 drawable 文件夹。使用android studio中的 Image Asset 选项重新创建它。

在我的情况下,问题是drawable文件夹本身。我自己创建了drawable文件夹。这不对。在android studio中我们应该使用Image Asset选项创建drawable文件夹。我没理由,但现在问题解决了。

答案 13 :(得分:0)

请检查您的图像颜色...如果您使用的是白色背景,并且使用白色图像,则不会显示...尝试将图像的背景容器更改为其他颜色或更改图像颜色。我真的遇到了这种情况并且浪费了很多时间......我希望这会有所帮助...

答案 14 :(得分:0)

我的问题是布局 alpha 设置为 0,这就是问题所在。 有时 alpha 会自己出现。 无论如何 0 alpha 是默认值,即使没有提到。 因此,尝试将 alpha 删除为 0。 0 alpha = 不可见!!

答案 15 :(得分:0)

尝试将布局文件中的 ImageView 更改为 androidx.appcompat.widget.AppCompatImageView

答案 16 :(得分:0)

尝试在 ImageView XML 文件中添加这一行

android:src="@drawable/splashscreen"
tools:srcCompat="@drawable/splashscreen"

答案 17 :(得分:0)

与该问题无关,但仍在分享经验,有时我们将源设置为工具,然后我们期望得到结果(对我来说是两次,每次花费15分钟才能解决)。

tools:srcCompat
//instead of 
android:srcCompat

工具的图片源仅在android studio中可见。

答案 18 :(得分:0)

还要查看您的logcat输出。您可能会看到与此图像相似的图像:

Question      Name Age Income
0              Bob  50  42000
1         Michelle  42  62000

在这种情况下,请减小图像尺寸。

答案 19 :(得分:0)

如果您像我一样是Android开发的新手,请阅读以下文档:

Android Official Documentation

Medium Article from a LinkedIn Android Dev

我已经从事iOS开发已有几年了,并决定涉足Android开发。我发现大多数情况下,这完全与屏幕分辨率有关(如前所述,mipmap也不适用于可绘制图像)。 这些答案都不能解决我的问题,我必须设置标准分辨率目录drawable-hdpidrawable-mdpidrawable-xhdpidrawable-xxhdpidrawable-xxxhdpi。这些是模拟器或设备在为设备设置搜索正确的分辨率时将查看的所有目录。如果仅将图像放在drawable中,则可能会导致设备忽略这些文件夹,并且当您看到不可见的高分辨率图像或由于内存错误而使应用程序崩溃时。确保检查图像的尺寸,并确保将其导入正确的可绘制目录下,以确保设备相应地缩放图像。

我的解释只是一个简短的概述,但是我强烈建议您阅读文章。

答案 20 :(得分:0)

Android ImageView是否不显示图像?

这些解决方案都不适合我。我所做的是我在清单文件中添加了这些代码行

android:hardwareAccelerated =“ false”

android:largeHeap =“ true”

如果这些代码行不能解决您的问题,请尝试设置图像视图的高度和宽度。不使用换行内容或匹配父项。如果您的尺寸不起作用。尝试减少电话号码,然后重试。我认为这些解决方案很有帮助。

答案 21 :(得分:0)

我面临着同样的问题。经过一些工作,我发现如果 我将图像放置在drawable(anydpi)中,该图像是在设计预览中呈现的,但不是在实际设备上呈现的,这是一个问题。因此,我将图像放置在简单的drawable文件夹中,而不是drawable(anydpi)。这解决了我的问题。

答案 22 :(得分:0)

我正面临着完全相同的问题。我尝试重建,但没有帮助。最后,我使用在线PNG尺寸调整器将图像从原来的2400x2400尺寸调整为原始尺寸,从2400x2400调整为1200x1200,然后使用在线压缩器将其文件尺寸从590KB压缩到150KB。

>

答案 23 :(得分:0)

图像文件名也很重要。确保在命名图像时没有空格。使用“ _”代替

答案 24 :(得分:0)

我将PNG图片复制/粘贴到Drawable文件夹中,并在XML文件中设置了所有信息和参数

--->图像显示在预览中,而不实际显示在设备/仿真器上。

所以->在Java活动中,我以编程方式对其进行了回顾:

  ImageView imview = (ImageView) findViewById(R.id.IdFromXML);
    imview.setImageResource(0);
Drawable draw = getResources().getDrawable(R.drawable.NameOfTheFileInFolder);
draw = (draw);
imview.setImageDrawable(draw);

做好了!

如有必要,将图像转换为PNG。在线大量免费的转换器。

答案 25 :(得分:-1)

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

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:src="@drawable/ic_launcher" />

</LinearLayout>

答案 26 :(得分:-1)

许多与图像相关的问题都是通过使用像Jake Wharton的Picasso这样的第三方库来解决的。我有图像加载的无法解释的问题,有时甚至出现内存错误。这是由图像编辑(使用Gimp for Mac)特别加入的。毕加索负责处理记忆和必要的缓存等工作。

http://square.github.io/picasso/