到目前為止,我們已經知道了怎麼使用View animation。來個小小的動畫練習吧。
這是Facebook 的讚按鈕,我們就用到目前所學的來實作這個動畫
複習一下,View Animation 可以用來做旋轉、縮放、移動、透明度的動畫。
我們先來分析一下這個動畫的組成,看起來只需要2張圖「還沒點讚」、「已點讚」。
點了讚會變藍色的、讚的圖示會變大、另外大姆指有往上翹高一下。
分析後得到點擊按鈕後的動畫步驟
再點擊一次,則變回原本較小的讚
實作如下:
like.setOnClickListener {
//步驟1:變換照片
if (isLike) {
//將讚取消
like.setImageResource(R.mipmap.fblike_notselect)
} else {
//按讚
like.setImageResource(R.mipmap.fblike_select)
}
//新增一個動畫集合
val animSet = AnimationSet(true)
//步驟2:放大1.2倍的動畫
val animation = ScaleAnimation(
1.0f, // x起始縮放比例
1.2f, // x結束縮放比例
1.0f, // x起始縮放比例
1.2f, // y結束縮放比例
Animation.RELATIVE_TO_SELF, 1f,
Animation.RELATIVE_TO_SELF, 1f)
animation.duration = 200
//步驟3:旋轉-20動畫的動畫
val rotateAnimation = RotateAnimation(
0.0f, //起始角度
-20f, //結束角度
RotateAnimation.RELATIVE_TO_SELF, //pivotXType
0.5f, //設定x旋轉中心點
RotateAnimation.RELATIVE_TO_SELF,
0.5f) //設定y旋轉中心點
//動畫持續時間
rotateAnimation.duration = 200
//將放大及旋轉的動畫放入動畫集合
animSet.addAnimation(animation)
animSet.addAnimation(rotateAnimation)
//步驟4:開始動畫
this.like.startAnimation(animSet)
isLike = !isLike
}
這樣就完成按讚的動畫了,是不是很簡單?
下一篇將介紹另一種動畫API:Property Animation。
完整程式:
https://github.com/evanchen76/FacebookLikeButton