Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

dots preloader,一个md风格的preloader,loading,view

Notifications You must be signed in to change notification settings

wtus/DotsChangeView

Repository files navigation

##缘起 首先说一下这个效果的来源,如图所示(外网网速慢):

uplab上的效果

##我的工作 还是挺好看的,我就试着实现了一下,暂时就像先这样,有时间有动力再考虑做个lib screenshot ##实现的思路

  • 有三条 path,分别是上面的弧,下面的弧,中间几个点所在线段的path(用于计算平移的位置)
  • 利用 ValueAnimator 构造一个 0-1的变化的值
  • 在 ondraw 里分两部分,<0.5,和>0.5 分别画上面和小面,构造两个函数
  • 同时根据ValueAnimator的变化量,构造函数,使他移动 gamma 的距离
  • 表达能力太次,Talking is cheap,Show me the Code;下班吃饭。

##有哪些坑

  • 本来我想用中间那几个点画在bitmap上,然后通过bitmap的canvas平移实现中间那几个点的移动效果
 bitmapCanvas.translate(gamma*i,0);
canvas.drawBitmap(mBitmap,0,0,null);

后来发现不行,bitmapCanvas 的 translate 居然是相对的,就是说不如 bitmapCanvas.translate(1,0),按理说, 不管调用多少次始终只是平移到(-1,0)的位置,但是实际运行运行的效果是,每调用一次,他就平移一次,一直移动。 令我困惑的是,在onDraw()的参数canvas 又不是相对的,就是绝对平移的。这个是正常的。如果有谁知道,请告知小弟一声啊。

About

dots preloader,一个md风格的preloader,loading,view

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /