Android 自定义View之3D骰子Loading 动画
2019-04-11 本文已影响22人
迷途小码农h
你可以指定立方体中每一面骰子的点数,颜色和背景,同时也可以指定执行的动画时间和动画插值器
使用
在根目录的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); //设置第四面骰子边界颜色
属性说明:
开始描述效果图之前,先看两张张说明图:
针对立方体而言
针对每一个骰子面而言: