TextView背景颜色与父元素背景颜色混合

时间:2016-04-19 13:36:23

标签: android xml

我有一个TextView的布局,如下所示:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/contentColorBackground"
    android:backgroundTint="@color/contentColorBackground"
    android:orientation="vertical" >

        <TextView
            android:id="@+id/Anecdote_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"
            android:padding="10dp"
            android:gravity="center"
            android:text="Click Me"
            android:textAppearance="@android:style/TextAppearance.Medium"
            android:layout_centerVertical="true"
            android:layout_centerHorizontal="true"
            android:background="@drawable/categories_button"
            xmlns:android="http://schemas.android.com/apk/res/android" />

它使用drawable作为背景:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" >
        <shape android:shape="rectangle"  >
            <corners android:radius="3dip" />
            <stroke android:width="1dip" android:color="@color/anecdoteBorderLine" />
            <gradient android:angle="-90" android:startColor="@color/anecdoteStartTopColor" android:endColor="@color/anecdoteEndBottomColor"  />
        </shape>
    </item>
    <item android:state_focused="true">
        <shape android:shape="rectangle"  >
            <corners android:radius="3dip" />
            <stroke android:width="1dip" android:color="#f22121" />
            <solid android:color="#b5ffaf10"/>
        </shape>
    </item>
    <item >
        <shape android:shape="rectangle"  >
            <corners android:radius="3dip" />
            <stroke android:width="1dip" android:color="@color/anecdoteBorderLine" />
            <gradient android:angle="-90" android:startColor="@color/anecdoteStartTopColor" android:endColor="@color/anecdoteEndBottomColor" />
        </shape>
    </item>
</selector>

一切似乎都不错,但是有一个很大的问题,线性布局的背景颜色与TextView的颜色混合在一起。这不是我想要的,我希望TextView只有drawable的颜色作为它的背景。 我这样做的正确方法是什么?

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

似乎是你用轻微的透明度宣告颜色的方式。

<item android:state_focused="true">
     <shape android:shape="rectangle"  >
         <corners android:radius="3dip" />
            <stroke android:width="1dip" android:color="#f22121" />
            <solid android:color="#b5ffaf10"/>
     </shape>
</item>

如果您将此行更改为

<solid android:color="#ffffaf10"/>

你应该有一个纯色作为你的背景。

答案 1 :(得分:0)

在此行的drawable中(给定代码中的14行):

<solid android:color="#b5ffaf10"/>

尝试删除最后两个数字。通常在#之后只有6个数字用于RGB - 红色,绿色,蓝色。如果设置为“#FF0000”,则为100%红色或“#00FF00”为100%绿色。在您的情况下,其他两个数字是10,定义所选颜色的透明度。