Skip to content

Latest commit

 

History

History
101 lines (89 loc) · 2.79 KB

README.md

File metadata and controls

101 lines (89 loc) · 2.79 KB

CustomAccelerateBall

accelerate ball,加速球效果,也就是圆形的ProgressBar的效果。

##效果图 录制效果不是很好

Screenshot

##功能

  • 可以设置目标位置,让它自己加速到特定位置。
  • 可以设置不适用加速的动画效果,直接设置到特定位置。
  • 可以设置是否显示Percent。
  • 可以设置刷新速度,RefreshSpeed。
  • 可以设置加速动画涨幅,Speed。
  • 可以设置加速过程监听,每次变化监听回调,加速结束回调,AccelerateBallUpdateListener。

##layout

<com.test.gavinguo.customaccelerateball.AccelerateBallView
        android:id="@+id/ball"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:layout_marginTop="50dp"
        android:layout_gravity="center_horizontal"
        accelerateball:initLevel="2000"
        accelerateball:galleryType="AnimationAndPercent"
        accelerateball:speed="superFast"
        accelerateball:refreshSpeed="superFast" />

##展示类型

public enum GalleryType{
        NoneAnimationAndPercent,//没有动画和百分比文字
        NoneAnimationHavePercent,//没有动画但是有文本
        AnimationOnly,//只有动画
        AnimationAndPercent,//具有动画和百分比,default
    }

##动画涨幅

public enum Speed{
        slow,//低速
        medium,//中速,default
        fast,//高速
        superFast,//超高速
        random,//随机速度
    }

##刷新速度

public enum RefreshSpeed{
        slow,//低速
        medium,//中速,default
        fast,//高速
        superFast,//超高速
    }

##过程监听

public interface AccelerateBallUpdateListener{
        /**
         * 每次变化
         * @param currentPercent 当前百分比
         */
        void updateLeveUp(int currentPercent);

        /**
         * 上涨结束调用
         * @param endPercent 结束时候的百分比
         */
        void endLeveUp(int endPercent);
    }

##设置参数以及启动

  ball = (AccelerateBallView) findViewById(R.id.ball);
  ball.setSpeedType(AccelerateBallView.Speed.superFast);
  ball.setRefreshSpeedType(AccelerateBallView.RefreshSpeed.superFast);
  ball.setGalleryType(AccelerateBallView.GalleryType.AnimationAndPercent);
  ball.setAccelerateBallUpdateListener(new AccelerateBallView.AccelerateBallUpdateListener() {
      @Override
      public void updateLeveUp(int currentPercent) {
          //do nothing
      }

      @Override
      public void endLeveUp(int endPercent) {
          //do nothing
      }
  });
  start.setOnClickListener(this);
  ball.setTotalLevel(totalLevel);

Total可以不停的去设置,加速球最终会停止在最后设置的位置。