我有一个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的颜色作为它的背景。 我这样做的正确方法是什么?
感谢您的帮助!
答案 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,定义所选颜色的透明度。