Android以编程方式在形状下更改笔触和渐变颜色

时间:2017-07-05 12:38:35

标签: android xml android-layout layout gradient

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内形状下的渐变的描边开始颜色的颜色。 我上面的代码将渐变的整个背景更改为所需的颜色,但有两个问题:

  1. 它没有xml
  2. 中指定的渐变效果
  3. 笔画的颜色不会改变。
  4. 任何人都知道如何解决这个问题?

0 个答案:

没有答案