android通过编程将自定义值设置为自定义textview

时间:2018-11-19 06:41:39

标签: android textview android-custom-view custom-view

我有一个TextView的自定义类。我已经实现了渐变属性作为​​textview的颜色。 但是我只能在xml中实现它。我是自定义视图的新手。我不知道如何在自定义TextView类中添加setStartColorsetEndColor

值/属性

<declare-styleable name="GradientTextView">
    <attr name="startColor" format="color" />
    <attr name="endColor" format="color" />
</declare-styleable>

GradientTextView

public class GradientTextView extends AppCompatTextView {
    public GradientTextView(Context context) {
        super(context);

    }
    public GradientTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
        TypedArray a=context.obtainStyledAttributes(attrs,R.styleable.GradientTextView);
        int startColor = a.getColor(R.styleable.GradientTextView_startColor, Color.WHITE);
        int endColor = a.getColor(R.styleable.GradientTextView_endColor, Color.WHITE);
        Shader myShader = new LinearGradient(0, 0, 0, 100,startColor, endColor, Shader.TileMode.CLAMP);
        this.getPaint().setShader(myShader);
        a.recycle();
    }  
}

XML

<mehran.design.GradientTextView
    android:id="@+id/title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:startColor="@color/yellow"
    app:endColor="@color/blue"/>

2 个答案:

答案 0 :(得分:0)

定义变量startColorendColor 还有它的设置者

喜欢

public void setStartColor(int color) {
    this.startColor= color;
    --- do your logic----
    invalidate();
}

引用Link

答案 1 :(得分:0)

赞:

{{1}}