Android自定義動(dòng)畫根據(jù)控件Y軸旋轉(zhuǎn)動(dòng)畫(仿紅包)
這里給正在學(xué)安卓的小白們分享一個(gè)動(dòng)畫吧,用處挺多,代碼也不多,還望各位大佬不要打擊。
進(jìn)入正題,先看看效果

效果很炫酷很美好
好了 來(lái)看代碼吧 該說(shuō)的都在代碼注釋里面 這個(gè)不用多說(shuō) 代碼極其簡(jiǎn)單
//自定義一個(gè)類繼承Animation(android.view.animation.Animation)抽象類
public class MyAnimation extends Animation {
// 先定義成員變量 //X軸的中心坐標(biāo) int center_X;
//Y軸的中心坐標(biāo) int center_Y;
// 初始化Camera Camera camera = new Camera();
}
接下來(lái)要注意了
重寫initialize()方法
/** * 在initialize對(duì)變量進(jìn)行初始化
* @param width
* @param height
* @param parentWidth
* @param parentHeight
*/
@Override
public void initialize(int width, int height, int parentWidth, int parentHeight) {
super.initialize(width, height, parentWidth, parentHeight);
//獲取X Y 中心點(diǎn)坐標(biāo) center_X = width/ 2; center_Y = height / 2;
//動(dòng)畫的執(zhí)行時(shí)間,3000毫秒
setDuration(3000L);
setInterpolator(new AccelerateInterpolator());
}
寫完這些以后就到了最關(guān)鍵的核心代碼了
/** * 在applyTransformation通過(guò)矩陣修改動(dòng)畫
* 這里是自定義動(dòng)畫的核心,動(dòng)畫執(zhí)行的過(guò)程中一直在回調(diào)這個(gè)方法
* 每次回調(diào)這個(gè)方法interpolatedTime都會(huì)改變
* @param interpolatedTime
* @param t
*/
@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
final Matrix matrix = t.getMatrix();
//儲(chǔ)蓄 camera.save();
//中心是繞Y軸旋轉(zhuǎn),這里可以自行設(shè)置其他軸
camera.rotateY(1080 * interpolatedTime);
//加在變換矩陣上 camera.getMatrix(matrix);
//設(shè)置翻轉(zhuǎn)中心點(diǎn) matrix.preTranslate(-center_X, -center_Y);
matrix.postTranslate(center_X, center_Y); //恢復(fù) camera.restore();
}
怎么樣 看完以后是不是了解了很多
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android使用Rotate3dAnimation實(shí)現(xiàn)3D旋轉(zhuǎn)動(dòng)畫效果的實(shí)例代碼
- Android編程實(shí)現(xiàn)RotateAnimation設(shè)置中心點(diǎn)旋轉(zhuǎn)動(dòng)畫效果
- Android動(dòng)畫之漸變動(dòng)畫(Tween Animation)詳解 (漸變、縮放、位移、旋轉(zhuǎn))
- Android Tween動(dòng)畫之RotateAnimation實(shí)現(xiàn)圖片不停旋轉(zhuǎn)效果實(shí)例介紹
- Android開發(fā)之圖形圖像與動(dòng)畫(二)Animation實(shí)現(xiàn)圖像的漸變/縮放/位移/旋轉(zhuǎn)
- Android實(shí)現(xiàn)旋轉(zhuǎn)動(dòng)畫的兩種方式案例詳解
相關(guān)文章
Android進(jìn)程運(yùn)行中權(quán)限被收回導(dǎo)致關(guān)閉的問(wèn)題解決
在Android開發(fā)中我們可能會(huì)遇到這樣的問(wèn)題,進(jìn)程還在運(yùn)行著某些權(quán)限卻被收回了,這就導(dǎo)致進(jìn)程崩潰被迫關(guān)閉,本篇文章將帶你了解這個(gè)問(wèn)題的發(fā)生與解決方法2021-10-10
Android TextSwitcher文本切換器和ViewFlipper使用詳解
這篇文章主要為大家詳細(xì)介紹了Android TextSwitcher文本切換器和ViewFlipper的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
Android基于Fresco實(shí)現(xiàn)圓角和圓形圖片
這篇文章主要為大家詳細(xì)介紹了Android基于Fresco實(shí)現(xiàn)圓角和圓形圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04
Android中監(jiān)聽Home鍵的4種方法總結(jié)
這篇文章主要介紹了Android中監(jiān)聽Home鍵的4種方法總結(jié),本文講解了onSaveInstanceState方法、onUserLeaveHint方法、ACTION_CLOSE_SYSTEM_DIALOGS、framework PhoneWindowManager.java等4種方法,需要的朋友可以參考下2015-04-04
Android入門之onTouchEvent觸碰事件的示例詳解
今天給大家?guī)?lái)的是TouchListener與OnTouchEvent的比較,以及多點(diǎn)觸碰的知識(shí)點(diǎn)!?文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-12-12
Android中ViewFlipper的使用及設(shè)置動(dòng)畫效果實(shí)例詳解
這篇文章主要介紹了Android中ViewFlipper的使用及設(shè)置動(dòng)畫效果的方法,以實(shí)例形式較為詳細(xì)的分析了ViewFlipper的功能、原理及設(shè)置與使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10
Android實(shí)現(xiàn)帶圖標(biāo)的列表對(duì)話框
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)帶圖標(biāo)的列表對(duì)話框,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12

