text_lines.xml:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/drawable_textLines"
android:bottom="1dp"
android:left="-2dp"
android:right="-2dp"
android:top="1dp">
<shape android:shape="rectangle">
<stroke
android:width="2dp"
android:color="@color/textBorderColor" />
<gradient
android:angle="90"
android:startColor="@color/textBorderColor"
android:endColor="#00000000"
android:type="linear"/>
<!--<solid android:color="#11999595" />-->
</shape>
</item>
MainActivity.java:
int backgroundColor = ((ViewHolder) holder).backroundColor;
LayerDrawable layerDrawable = (LayerDrawable) ((ViewHolder) holder).title.getBackground();
GradientDrawable bgShape = (GradientDrawable)layerDrawable.findDrawableByLayerId(R.id.drawable_textLines);
bgShape.mutate();
bgShape.setColor(backgroundColor);
我的布局中的文字视图:
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:textSize="15sp"
android:maxLines="2"
android:background="@drawable/text_lines"
android:layout_gravity="center"
android:gravity="center"/>
我想要实现的是在运行时更改text_lines.xml
内形状下的渐变的描边和开始颜色的颜色。
我上面的代码将渐变的整个背景更改为所需的颜色,但有两个问题:
任何人都知道如何解决这个问题?