public class CTextView extends android.support.v7.widget.AppCompatTextView {
private Paint paint;
public CTextView(Context context) {
this(context, null);
}
public CTextView(Context context, @Nullable AttributeSet attrs) {
this(context, attrs, 0);
}
public CTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initParams();
}
private int viewWidth, viewHeight;//控件宽高
private void initParams() {
// viewWidth = viewHeight = 200;
paint = new Paint();
paint.setColor(Color.parseColor("#FFB300"));
paint.setStrokeWidth(1);
paint.setAntiAlias(true);
paint.setStyle(Paint.Style.STROKE);
setGravity(Gravity.CENTER);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
viewWidth = getMeasuredWidth();
viewHeight = getMeasuredHeight();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawCircle(viewWidth / 2f, viewHeight / 2f, viewWidth / 2f - paint.getStrokeWidth(), paint);
}
public void startAnim() {
ObjectAnimator sx = ObjectAnimator.ofFloat(this, "scaleY", 0.5f, 1f);
ObjectAnimator sy = ObjectAnimator.ofFloat(this, "scaleX", 0.5f, 1f);
ObjectAnimator fadeOutIn = ObjectAnimator.ofFloat(this, "alpha", 0f, 1f, 0.9f, 1f, 0f);
AnimatorSet animSet = new AnimatorSet();
animSet.play(sx).with(sy).with(fadeOutIn);
animSet.setDuration(2000);
animSet.start();
animSet.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
animFinishListener.onFinish();
}
});
}
public interface onAnimFinishListener {
void onFinish();
}
private onAnimFinishListener animFinishListener;
public void setOnAnimFinishListener(onAnimFinishListener animFinishListener) {
this.animFinishListener = animFinishListener;
}
}
自定义控件动画TextView
最新推荐文章于 2022-11-16 09:11:43 发布