今天看到一个银行的应用上面的loadingview挺好的,就尝试着自己实现,觉得很简单,但自己实现起来还是发现了一些问题。
LoadingView和下图类似:
实现的代码也不是很复杂,就是小球的运动轨迹需要计算,我自己手画了个计算的图,很简单的就是三角函数的使用。
然后代码就是代码实现了,主要的内容都有注释,代码如下:
公开课LoadingView扩展视图{ 私人标签的静态字符串=" LoadingView”; 私人最终静态int LEFT_BALL_DOWN=1; 私人最终静态int LEFT_BALL_UP=2; 私人最终静态int RIGHT_BALL_DOWN=3; 私人最终静态int RIGHT_BALL_UP=4; 私人油漆paint1、paint2 paint3、paint4 paint5; 私人int mCurrentAnimatorValue; 私人int circleRadius=10;//小球的半径 私人int距离=60;//小球开始下落到最低点的距离 私人int mCurrentState=LEFT_BALL_DOWN; 公共LoadingView(上下文语境){ 超级(上下文); init(上下文); } 公共LoadingView(上下文语境,@Nullable AttributeSet attrs) { 超级(上下文,attrs); init(上下文); } 公共LoadingView(上下文语境,@Nullable AttributeSet attrs, int defStyleAttr) { 超级(上下文、attrs defStyleAttr); init(上下文); } 私人空间init(上下文语境){ paint1=getPaint (Color.RED); paint2=getPaint (Color.YELLOW); paint3=getPaint (Color.GREEN); paint4=getPaint (Color.BLUE); paint5=getPaint (Color.CYAN); ValueAnimator动画=ValueAnimator。ofInt (0, 90); 动画师。addUpdateListener(新ValueAnimator.AnimatorUpdateListener () { @Override 公共空间> & lt; com.define_view.LoadingView android: layout_marginTop=" 20 px” android:背景=" # 999999 " android: layout_width=" 200 px " android: layout_height=" 200 px”/祝辞
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。