【问题标题】:I can't use the color value to set the background for the layout我不能使用颜色值来设置布局的背景
【发布时间】:2020-01-22 00:51:16
【问题描述】:

这是我的布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/c8"
    android:orientation="vertical"
    android:gravity="center_horizontal"
    tools:context="com.leo.accelerate.activity.SplashActivity">

    <ImageView
        android:layout_marginTop="190dp"
        android:layout_width="146dp"
        android:layout_height="146dp"
        android:src="@mipmap/icon_splash"
        />
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="36dp"
        android:src="@mipmap/boost_shanping_name"
        />

</LinearLayout>

我得到了错误:

     Caused by: android.content.res.Resources$NotFoundException: Resource "com.leo.accelerate:style/RtlOverlay.DialogWindowTitle.AppCompat" (7f0b0028)  is not a Drawable (color or path): TypedValue{t=0x1/d=0x7f0b0028 a=-1 r=0x7f0b0028}

根据地址值0x7f0b0028找到问题颜色

 find . -type f | xargs grep "0x7f0b0028"

result:
./app-default-release/res/values/public.xml:    <public type="color" name="c8" id="0x7f0b0028" />
./app-default-release/smali/com/leo/accelerate/R$color.smali:.field public static final c8:I = 0x7f0b0028

问题代码是名为c8color值,用于布局中的背景属性

当我用drawable替换他时,问题就不存在了。

我该如何解决这个问题?

【问题讨论】:

  • 如果还提供颜色资源文件代码就好了。
  • 请告诉我们哪个答案对您有帮助,以及它是否解决了您的问题。

标签: android layout colors background


【解决方案1】:

您能否检查一下您的颜色值@color/c8。您的颜色 c8 值可能有误。尝试另一种颜色,它是工作。试试 android:background="@android:color/black"。如果它有效,那么我确定您的颜色值是错误的。您不能使用像 0x7f0b0028 这样的十六进制颜色值。

【讨论】:

    【解决方案2】:

    它应该可以正常工作,我知道这可能会导致问题的唯一原因是:

    1. 您提供的颜色属性名称不正确。

    2. 您在颜色值文件夹中赋予属性的值是 不支持。

    3. 您在 xml 项中多次写入背景属性 你正在尝试画画。

    4. 您使用的模拟器不支持此颜色。

    请务必检查所有这些原因,如果在确定所有这 4 个原因后您仍然有问题,请联系我们,我们将尝试进一步调查您的问题。

    最好的问候,利多尔

    【讨论】:

    • 请让我们知道哪种解决方案适合您先生。
    • 看来Android无法解析我在color.xml中的定义。当我使用 c8 指向的颜色值作为背景时,它工作正常。我的 color.xml 中没有语法错误,因为当我将它复制到一个全新的项目中时,它与 @color/c8 配合得很好,我很困惑
    • 请将您的 color.xml 文件以及与您的布局相关的任何其他文件添加到您的问题中。
    猜你喜欢
    • 2015-02-14
    • 2011-11-14
    • 2020-12-08
    • 2016-01-26
    • 1970-01-01
    • 2014-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多