我有一个应用程序,其中包含我在布局中指定的背景图像的按钮。对于mdpi和up它工作正常,你可以看到图像。但我最近开始在一个小设备上测试,看到背景只显示黑色。然后我检查了我提供的屏幕尺寸(小)并检查了密度,我在这种情况下看到的是ldpi。所以我将mdpi图像重新缩放到36x36并创建了一个mipmap-ldpi文件夹。 Android工作室在设计时看到它,但由于某种原因它在运行时没有被选中。所以我用Google搜索,发现我可能需要通过Android Studio手动添加它们。所以我创建了一个新的资源目录,我将密度指定为ldpi,如下所示:
然后我为每个Icon添加了一个具有相同名称的新文件,并选择了如下的ldpi文件夹:
然后选择ldpi目录:
然后我输入了与每个图标/图像的所有其他密度相同的名称。
毕竟这仍然是黑色背景所以我想让我尝试以编程方式分配背景。那就行了。任何人都可以帮我解释为什么在布局文件中指定它时它不起作用。我有一个专门用于小屏幕的布局文件。我还必须指定密度吗?
为图像道歉。我看到我无法嵌入因为我的名声太低了。
更新1:
按照建议将所有图标移动到Drawables,它仍在执行。 阅读其他文章,其中不再支持LDPI,然后通过不支持具有LDPI密度的设备来解决问题。 但是第二天然后在具有HPDI密度的旧S2上选择了同样的问题。因此,除非另有证明,否则它可能不再是LDPI问题。希望我们能找到问题并解决问题。
答案 0 :(得分:2)
mipmap目录用于存储启动器图标。它们不在应用内部使用,而是在主屏幕和应用列表中使用。
原因是,当请求来自drawable-directory的资源时,从匹配当前密度的文件夹中选择一个位图。但是,当您使用mipmap drawable时,启动器可以从不同的文件夹中选择一个图标(通常是一个大小)。这就是你没有看到ldpi图标的原因。
有些发射器实际上显示的图标大于预期。因此,使用启动器的mipmap有助于此。
同时检查this link。
摘要:为应用内部使用的图标使用drawable,为应用的启动器图标使用mipmap。
答案 1 :(得分:0)
道歉。我错误地问了我的问题。我认为这是图标,但我忽略了提到我从Layer-List drawables中调用图标。如果您没有明确提及透明作为颜色,那么运行Android 4.0和4.1的某些设备上的Layer-List会变黑。我现在可以看到来自ldpi的所有图标了。
感谢您的协助。参考链接:Android xml layer-list not displayed correctly on some devices