Android 自定义View之3D骰子Loading 动画

你可以指定立方体中每一面骰子的点数,颜色和背景,同时也可以指定执行的动画时间和动画插值器

使用

在根目录的build.gradle添加这一句代码:

allprojects {    repositories {        //...        maven { url 'https://jitpack.io' }    }}

在app目录下的build.gradle添加依赖使用

dependencies {    implementation 'com.github.samlss:DiceLoadingView:1.0'}

在开始介绍DiceLoadingView之前,先看一下骰子即DeiceView的组成

DiceView

在DiceLoadingView中应用的骰子view

以下为效果图:

布局中:

<com.iigo.library.DiceView            android:layout_marginTop="10dp"            app:number="one"            app:bgColor="@android:color/white"            app:borderColor="@color/colorPrimary"            app:pointColor="@color/colorPrimary"            android:layout_width="50dp"            android:layout_height="50dp" />

代码:

diceView.setNumber(2); //设置骰子点数,必须为1-6diceView.setPointColor(Color.RED); //设置点的颜色diceView.setBgColor(Color.RED); //设置背景颜色diceView.setBorderColor(Color.RED); //设置边界颜色

属性说明:

开始描述效果图之前,先看一张说明图:

DiceLoadingView

布局中使用:

<com.iigo.library.DiceLoadingView                    android:id="@+id/dlv_loading1"                    app:animDuration="2000"                    app:animInterpolator="AccelerateDecelerateInterpolator"                    app:firstSideDiceNumber="1"                    app:firstSideDicePointColor="@color/colorPrimary"                    app:firstSideDiceBgColor="@android:color/white"                    app:firstSideDiceBorderColor="@color/colorPrimary"                    app:secondSideDiceNumber="2"                    app:secondSideDicePointColor="@android:color/holo_orange_dark"                    app:secondSideDiceBgColor="@android:color/white"                    app:secondSideDiceBorderColor="@android:color/holo_orange_dark"                    app:thirdSideDiceNumber="3"                    app:thirdSideDicePointColor="@android:color/holo_red_dark"                    app:thirdSideDiceBgColor="@android:color/white"                    app:thirdSideDiceBorderColor="@android:color/holo_red_dark"                    app:fourthSideDiceNumber="4"                    app:fourthSideDiceBgColor="@android:color/white"                    app:fourthSideDiceBorderColor="@android:color/holo_green_dark"                    app:fourthSideDicePointColor="@android:color/holo_green_dark"                    android:layout_width="50dp"                    android:layout_height="50dp" />

代码中使用:

diceLoadingView.start(); //开始动画diceLoadingView.stop(); //停止动画diceLoadingView.pause(); //暂停动画diceLoadingView.resume(); //恢复动画diceLoadingView.release(); //不需要使用该loading view的时候可手动释放,例如在activity的ondestroy()中diceLoadingView.setDuration(3000); //设置动画时间diceLoadingView.setInterpolator(new AnticipateOvershootInterpolator()); //设置动画插值器diceLoadingView.setFirstSideDiceNumber(2); //设置第一面骰子点数(1-6)diceLoadingView.setFirstSidePointColor(Color.parseColor("#FF7D81")); //设置第一面骰子点的颜色diceLoadingView.setFirstSideDiceBgColor(Color.WHITE); //设置第一面骰子背景颜色diceLoadingView.setFirstSideDiceBorderColor(Color.GRAY); //设置第一面骰子边界颜色diceLoadingView.setSecondSideDiceNumber(3); //设置第二面骰子点数(1-6)diceLoadingView.setSecondSidePointColor(Color.BLUE); //设置第二面骰子点的颜色diceLoadingView.setSecondSideDiceBgColor(Color.WHITE); //设置第二面骰子背景颜色diceLoadingView.setSecondSideDiceBorderColor(Color.BLUE); //设置第二面骰子边界颜色diceLoadingView.setThirdSideDiceNumber(4); //设置第三面骰子点数(1-6)diceLoadingView.setThirdSidePointColor(Color.GREEN); //设置第三面骰子点的颜色diceLoadingView.setThirdSideDiceBgColor(Color.WHITE); //设置第三面骰子背景颜色diceLoadingView.setThirdSideDiceBorderColor(Color.GREEN); //设置第三面骰子边界颜色diceLoadingView.setFourthSideDiceNumber(5); //设置第四面骰子点数(1-6)diceLoadingView.setFourthSidePointColor(Color.RED); //设置第四面骰子点的颜色diceLoadingView.setFourthSideDiceBgColor(Color.WHITE); //设置第四面骰子背景颜色diceLoadingView.setFourthSideDiceBorderColor(Color.RED); //设置第四面骰子边界颜色

属性说明:

开始描述效果图之前,先看两张张说明图:

针对立方体而言

针对每一个骰子面而言:

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 你可以指定立方体中每一面骰子的点数,颜色和背景,同时也可以指定执行的动画时间和动画插值器 更多有趣的view 使用...
    Samlss阅读 5,481评论 0 10
  • 1 CALayer IOS SDK详解之CALayer(一) http://doc.okbase.net/Hell...
    Kevin_Junbaozi阅读 10,573评论 3 23
  • 【Android 动画】 动画分类补间动画(Tween动画)帧动画(Frame 动画)属性动画(Property ...
    Rtia阅读 11,369评论 1 38
  • 这一章主要针对项目中可以用到的一些实用功能来介绍Android Gradle,比如如何隐藏我们的证书文件,降低风险...
    acc8226阅读 12,283评论 3 25
  • 习惯了孤独 就像与空气谈场恋爱 风雨无常,烟消云散 预设好的伏笔难以如约开场 却总想考究猜不到的结局 宁愿在超越距...
    郁光阅读 1,729评论 0 4