我无法使用颜色值设置布局的背景

时间:2019-09-21 04:13:58

标签: android layout colors background

这是我的布局

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

问题代码是名为color的{​​{1}}值,它在布局的backgroud属性中使用

当我用可绘制对象替换他时,这个问题不存在。

如何解决此问题?

2 个答案:

答案 0 :(得分:0)

能否请您检查您的颜色值 @ color / c8 。您的颜色 c8 值可能是错误的。尝试使用其他颜色,这是可行的。尝试使用 android:background =“ @ android:color / black” 。如果正常,那么我确定您的颜色值有误。您不能使用十六进制颜色值,例如 0x7f0b0028

答案 1 :(得分:0)

它应该可以正常工作,据我所知可能会引起问题的唯一原因是:

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

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

  3. 您在xml项中多次写入了background属性 您正在尝试绘制。

  4. 您使用的仿真器不支持此颜色。

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

致谢,Lidor