图片显示在Android Studio中但未在手机

时间:2015-06-15 11:47:02

标签: android listview imageview

如下所示,这是Android Studio展示的内容:

enter image description here

然而,当我在手机上运行这个应用程序时,列表视图只显示一个空白图像(即 - 空格),其上方是“彩虹上的某个地方”。

列表视图工作正常。它由一个图像视图和两个文本视图组成。 (如果有帮助,此图像视图正常工作)。如果其中任何一个可能会干扰,那么我会在这里发布代码,但我觉得很难相信。

我不确定的一件事是,在单独的xml文件中为列表视图定义单元格时是否可以使用相对视图。我不明白为什么不是,但这是我唯一能想到的。

基本上Android工作室显示一切正常但在手机/模拟器上并非如此。因此,我发现很难找到问题。

我是Android开发界的新手,所以对我很轻松。

修改

图像为.png格式,位于drawable文件夹中。我在drawable文件夹中还有另一个.png图像,似乎没有任何问题。为什么会这样?原始图像显然没有损坏,因为它显示在Android Studio

由于尺寸

,必须将图像移动到“mipmap-xxhdpi”文件夹

9 个答案:

答案 0 :(得分:22)

我偶然发现了同样的问题并找到了以下答案: (来源:https://stackoverflow.com/a/40397892/7614252

我所做的工作是将文本选项卡中指定的自动键(通过拖放ImageView填充)从app:srcCompat="@drawable/logo"更改为android:src="@drawable/logo",以使其显示在模拟器和设备,例如

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/logo"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="75dp"
    android:id="@+id/logoImageView"
    android:scaleType="fitXY"
    android:scaleX="1.5"
    android:scaleY="1.5" />

答案 1 :(得分:11)

我今天发现了同样的问题。因此,首先检查图像的高度和宽度,并根据它将图像放入不同的可绘制文件夹。即如果图像尺寸为1280 x 840,则将图像放入drawable-xxhdpi文件夹中。

答案 2 :(得分:3)

我最近有同样的问题,你能检查它在哪个文件夹。对我来说问题是把它放在drawable文件夹里,而它应该是drawable-nodpi

还说明您遇到此问题的设备是多个设备吗?

Image not appearing on HTC One M8

以下是相关答案。

答案 3 :(得分:2)

我可以确认,在查看图像时,可以在三星Galaxy S4上将更大的图像放入更高的HDPI文件夹。

我遇到的问题是较高HDPI的drawable文件夹不存在。 但是,如果您创建一个新文件夹并将其命名为drawable-xxhdpidrawable-(whateverxxxhdpi),将其放在[path to your project folder]\app\src\main\res\中,然后将图片放在那里,它应该有用。

答案 4 :(得分:1)

之前提出了一个重复的问题(我没有足够的要点将上面的问题标记为副本)here而Lukap建议将drawable放入drawable-hdpi文件夹中。 Apparently使用三个可绘制文件夹(-hdpi,-mdpi,-ldpi)曾经是标准做法。

虽然将图片放入任何mipmap文件夹中对我来说也很有用(当然然后将android:src="@drawable/image"更改为android:src="@mipmap/image"),但App Resources的Android Developer页面说明了mipmap资源适用于“不同启动器图标密度的可绘制文件”。因此,将启动图标以外的图像放在mipmap文件夹中似乎可以正常工作,但不遵循Android惯例。

在我看来,当在唯一可用的drawable /文件夹中时,图像无法显示的错误,因为其他人建议使用drawable文件夹来处理非app图标的所有图像。在提供资源的Android开发者页面上,有一节讨论Android使用selecting the best matching resources的方法,其中使用了几个可绘制资源可用的示例。

  

为了演示Android如何选择替代资源,请假设   以下可绘制目录每个包含不同版本的   相同的图片:

     

可绘制/
    绘制恩/
    抽拉-FR-RCA /
    绘制烯端口/
    绘制烯notouch-12键/
    抽拉口-LDPI /
    drawable-port-notouch-12key /

     

并假设以下是设备   配置:

     

Locale = en-GB
    屏幕方向=端口
    屏幕像素密度= hdpi
    触摸屏类型=凹槽
    主要文本输入法= 12key

     

通过将设备配置与可用替代方案进行比较   资源,Android从drawable-en-port选择drawables。

如果只有一个drawable /文件夹,你会认为android“logic”会选择唯一可用的drawable资源。

答案 5 :(得分:1)

如果您使用android:srcapp:srcCompat使用android:background代替:

android:background="@drawable/your_image"

答案 6 :(得分:1)

我遇到了类似的问题。我的图像显示在图像上,但未显示在我的Android设备上...

我改变了

tools:srcCompat="@drawable/ic_wifi"

并替换为

app:srcCompat="@drawable/ic_wifi"

答案 7 :(得分:1)

我有类似的问题,但这是我添加到清单文件中的内容 <application //this solve it for me. android:hardwareAccelerated="false" // Add this if the previuos line didn't solve the problem android:largeHeap="true" android:theme="@style/AppTheme">

答案 8 :(得分:0)

我遇到了这个问题,我通过在imageView xml代码中添加它来解决它

android:adjustViewBounds="true"