我有一个TextView
的自定义类。我已经实现了渐变属性作为textview的颜色。
但是我只能在xml
中实现它。我是自定义视图的新手。我不知道如何在自定义TextView类中添加setStartColor
,setEndColor
。
值/属性
<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"/>
答案 0 :(得分:0)
定义变量startColor
和endColor
还有它的设置者
喜欢
public void setStartColor(int color) {
this.startColor= color;
--- do your logic----
invalidate();
}
引用Link
答案 1 :(得分:0)
赞:
{{1}}