项目有秒杀功能 所以要用到倒计时, 在网上发现了这个库,所以记录下来,以备不时之用。废话不多说了 。下面开始。
项目地址:
Demo效果:
在xml 就想定义Button 一样 如下:
<com.hayquan.countdown.countdown.CountdownView android:id="@+id/countdownview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginTop="20dp" app:isHideTimeBackground="false" app:isShowDay="false" app:isShowHour="true" 显示小时 app:isShowMillisecond="false" //毫秒 app:isShowMinute="true" //分钟 app:isShowSecond="true" //秒 app:isShowTimeBgDivisionLine="false" app:suffixGravity="center" //后缀居中 app:suffixTextColor="#000000" //后缀颜色 app:suffixTextSize="20sp" //后缀字体大小 app:timeBgColor="#FF5000" //时间背景颜色 app:timeTextColor="#FFFFFF" //时间字体颜色 app:timeTextSize="20sp"/>
因为是使用的自定义属性,所以要不要忘记添加如下声明:
xmlns:app="http://schemas.android.com/apk/res-auto"
Java 中代码如下:
countdownView = (CountdownView) findViewById(R.id.countdownview); countdownView.start(5*10 * 60 * 1000);//填入毫秒值 countdownView.setOnCountdownEndListener(new CountdownView.OnCountdownEndListener() { @Override public void onEnd(CountdownView cv) { Toast.makeText(MainActivity.this, "介绍了", Toast.LENGTH_LONG).show(); } });
attrs中的属性定义如下:
<?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="CountdownView"> <attr name="isHideTimeBackground" format="boolean"/> <attr name="isShowTimeBgDivisionLine" format="boolean"/> <attr name="timeBgDivisionLineColor" format="color"/> <attr name="timeBgDivisionLineSize" format="dimension"/> <attr name="timeBgColor" format="color"/> <attr name="timeBgSize" format="dimension"/> <attr name="timeBgRadius" format="dimension"/> <attr name="isTimeTextBold" format="boolean"/> <attr name="timeTextSize" format="dimension"/> <attr name="timeTextColor" format="color"/> <attr name="isShowDay" format="boolean"/> <attr name="isShowHour" format="boolean"/> <attr name="isShowMinute" format="boolean"/> <attr name="isShowSecond" format="boolean"/> <attr name="isShowMillisecond" format="boolean"/> <attr name="isSuffixTextBold" format="boolean"/> <attr name="suffixTextSize" format="dimension"/> <attr name="suffixTextColor" format="color"/> <attr name="suffix" format="string"/> <attr name="suffixDay" format="string"/> <attr name="suffixHour" format="string"/> <attr name="suffixMinute" format="string"/> <attr name="suffixSecond" format="string"/> <attr name="suffixMillisecond" format="string"/> <attr name="suffixGravity"> <enum name="top" value="0"/> <enum name="center" value="1"/> <enum name="bottom" value="2"/> </attr> <attr name="suffixLRMargin" format="dimension"/> <attr name="suffixDayLeftMargin" format="dimension"/> <attr name="suffixDayRightMargin" format="dimension"/> <attr name="suffixHourLeftMargin" format="dimension"/> <attr name="suffixHourRightMargin" format="dimension"/> <attr name="suffixMinuteLeftMargin" format="dimension"/> <attr name="suffixMinuteRightMargin" format="dimension"/> <attr name="suffixSecondLeftMargin" format="dimension"/> <attr name="suffixSecondRightMargin" format="dimension"/> <attr name="suffixMillisecondLeftMargin" format="dimension"/> </declare-styleable> </resources>