颜色值可绘制资源问题

2022-09-04 05:08:55

我有一个图像是1900 * 1200,在一个名为drawable-sw600dp的文件夹中,id喜欢在nexus 7上使用。当我尝试运行应用程序的主要活动时,屏幕是白色的,我得到以下错误:

java.lang.NumberFormatException: Color value '@drawable-sw600dp/background5' must start with #
at com.android.layoutlib.bridge.impl.ResourceHelper.getColor(ResourceHelper.java:71)
at com.android.layoutlib.bridge.impl.ResourceHelper.getDrawable(ResourceHelper.java:248)
at android.content.res.BridgeTypedArray.getDrawable(BridgeTypedArray.java:782)

可能是图像太大而无法使用吗?或者什么可能导致此错误发生?

这是我activity_main.xml设置背景的地方:

xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background5"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:id="@+id/MainLayout"
tools:context=".MainActivity">

在我的其他文件夹中,drawable-hdpi,-mdpi没有问题。但是,我使.jpg图像具有更高的分辨率,现在它会产生此错误,这就是为什么我怀疑高分辨率导致问题的原因。


答案 1

删除文件名中的“-”。

注意:“-”不是有效的基于文件的资源名称字符:基于文件的资源名称只能包含小写的 a-z、0-9 或下划线


答案 2

正如android doc所提到的,jpg不受支持。请改用 png:

可用作背景的可绘制对象。这可以是对完整可绘制资源(如 PNG 图像、9-patch、XML 状态列表描述等)的引用,也可以是纯色(如“#ff000000”(黑色)。


推荐