Get the App
SLTechnology News&Howtos  ›  Development  › 

How to use custom view to draw a straight line at a constant speed in a specified time by Android

Shulou Source: shulou.com Published: 2022-05-31 22:50:36 09月17日 Update

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!

Tags: Time straight line content more knowledge practical successful learning next dilemma reality situation effect effect article slash case editing website industry process Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno MySQL macOS Shulou Information vpn Shulou Tech Info