生活随笔
收集整理的這篇文章主要介紹了
一起Talk Android吧(第四百八十四回:使用逐帧动画实现倒计时效果)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
各位看官們大家好,上一回中咱們說的例子是"如何修改Spinner的倒三角",這一回中咱們說的例子是"
使用逐幀動畫實現倒計時效果"。閑話休提,言歸正轉,讓我們一起Talk Android吧!
概念介紹
我們在前面章回中介紹了各種類型的視圖動畫,這些動畫都可以歸類為補間動畫,本章回將介紹另外一種視圖動畫:逐幀動畫。
逐幀動畫類似電影,電影是按照一定的速度依次播放每張膠片中的畫面,逐幀動畫則是按照一定的速度一幀一幀地播放幀中的內容,進而組成一個完整的動畫。我們需要做的是添加幀,以及的控制幀的播放速度。
使用方法
明白逐幀動畫的概念后,我們通過文字結合代碼的方式來介紹如何使用逐幀動畫;
在drawable目錄下創建資源文件fram_anima.xml,該資源文件就是動畫文件,文件中使用<animation-list>標簽和它的item屬性;
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"android:oneshot="false"><item android:drawable="@drawable/ic_num6" android:duration="1000"></item><item android:drawable="@drawable/ic_num5" android:duration="1000"></item><item android:drawable="@drawable/ic_num4" android:duration="1000"></item><item android:drawable="@drawable/ic_num3" android:duration="1000"></item><item android:drawable="@drawable/ic_num2" android:duration="1000"></item><item android:drawable="@drawable/ic_num1" android:duration="1000"></item>
</animation-list>
創建一個ImageView控件,并且把動畫文件賦值給控件的src屬性(background屬性也可以);
<ImageViewandroid:id="@+id/id_iv_frame_anima"android:src="@drawable/frame_anima"android:layout_width="56dp"android:layout_height="56dp">
</ImageView>
在代碼中獲取ImageView控件以及控件中的動畫資源;使用動畫資源播放動畫;
mImageViewFrameAnima
= mBinding
.idIvFrameAnima
;
AnimationDrawable animationDrawable
= (AnimationDrawable) mImageViewFrameAnima
.getDrawable();
animationDrawable
.start();
我們在動畫文件中添加了6個屬性,每個屬性是一張圖片,圖片的內容從6到1.運行動畫就會出現從6到1的倒計時效果,并且動畫反復運行。我們在這里就不演示程序的運行結果了,希望大家自己動手去實踐。
注意事項
在使用逐幀動畫時還有一些細節需要注意,接下來我們詳細說明:
<animation-list>標簽中的oneshot用來控制動畫的播放次數,如果值為true表示只播放一次動畫,如果值為false表示無限次地播放動畫,默認值為false;屬性表示動畫中的一幀,它的duration表示該幀的播放時間,單位為毫秒;代碼中逐幀動畫的類型為AnimationDrawable類型,在從圖片控件中獲取動畫文件時需要做類型轉換;逐幀動畫與其它視圖動畫的類型不同,使用方法也不同;
看官們,關于"使用逐幀動畫實現倒計時效果"的例子咱們就介紹到這里,欲知后面還有什么例子,且聽下回分解!
總結
以上是生活随笔為你收集整理的一起Talk Android吧(第四百八十四回:使用逐帧动画实现倒计时效果)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。