How to use custom view to draw a straight line at a constant speed in a specified time by Android
This article introduces the knowledge of "how Android uses custom view to draw a straight line at a uniform speed within a specified period of time". In the operation of actual cases, many people will encounter such a dilemma, so let the editor lead you to learn how to deal with these situations. I hope you can read it carefully and be able to achieve something!
1. Effect picture:
two。 Custom view implementation
Public class UniformLine extends View {private int x, y, nextX, nextY, incrementY, incrementX; public UniformLine (Context context) {super (context);} public UniformLine (Context context, int x, int y, int nextX, int nextY) {super (context); this.x = x; this.y = y; this.nextX = nextX; this.nextY = nextY; init ();} private void init () {p = new Paint (); p.setColor (Color.WHITE) P.setAntiAlias (true); p.setStrokeWidth (4.0f); ValueAnimator valueAnimatorX = ValueAnimator.ofFloat (x, nextX); valueAnimatorX.addUpdateListener (new ValueAnimator.AnimatorUpdateListener () {@ Override public void onAnimationUpdate (ValueAnimator animation) {incrementX = Math.round ((Float) animation.getAnimatedValue ()); invalidate ();}}); ValueAnimator valueAnimatorY = ValueAnimator.ofInt (y, nextY) ValueAnimatorY.addUpdateListener (new ValueAnimator.AnimatorUpdateListener () {@ Override public void onAnimationUpdate (ValueAnimator animation) {incrementY = (int) animation.getAnimatedValue (); invalidate ();}}); AnimatorSet animatorSet = new AnimatorSet (); LinearInterpolator ll = new LinearInterpolator (); animatorSet.setInterpolator (ll); / / uniform animatorSet.setDuration (2000); animatorSet.playTogether (valueAnimatorX, valueAnimatorY); animatorSet.start ();} Paint p; @ Override protected void onDraw (Canvas canvas) {super.onDraw (canvas) Canvas.drawLine (Util.Div (Math.round (x)), Util.Div (Math.round (y)), Util.Div (Math.round (incrementX)), Util.Div (Math.round (incrementY)), p); / / slash}}
3. Call
UniformLine = new UniformLine (mContext, 300,500,600,200); addView (uniformLine); "Android how to use custom view to draw a straight line at a constant speed within a specified time". Thank you for reading. If you want to know more about the industry, you can follow the website, the editor will output more high-quality practical articles for you!