首先看看大致效果
就是viewpager滑动的时候上面tab的文字根据滑动比例把对应比例的文字变成另一种颜色。
先自定义一个view 继承自Textview,然后初始化两种颜色的paint,重写ondraw
在ondraw里用两层画布写好同一样的文字然后对外放出一个可以设置的属性来设置两种颜色的文字的结合点,然后根据结合点来剪切画布。然后在viewpager的onselectchangeed方法里设置这个属性就完成了。
上代码:
view:
public class MyTextView extends AppCompatTextView { public MyTextView(Context context) { this(context, null); } public MyTextView(Context context, @Nullable AttributeSet attrs) { this(context, attrs, 0); } public MyTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); initpaint(context,attrs); } private void initpaint(Context context, AttributeSet attr) { //自定义属性color1,color2 TypedArray typedArray = context.obt