Android自定義動(dòng)畫(huà)根據(jù)控件Y軸旋轉(zhuǎn)動(dòng)畫(huà)(仿紅包)
這里給正在學(xué)安卓的小白們分享一個(gè)動(dòng)畫(huà)吧,用處挺多,代碼也不多,還望各位大佬不要打擊。
進(jìn)入正題,先看看效果
效果很炫酷很美好
好了 來(lái)看代碼吧 該說(shuō)的都在代碼注釋里面 這個(gè)不用多說(shuō) 代碼極其簡(jiǎn)單
//自定義一個(gè)類(lèi)繼承Animation(android.view.animation.Animation)抽象類(lèi) public class MyAnimation extends Animation { // 先定義成員變量 //X軸的中心坐標(biāo) int center_X; //Y軸的中心坐標(biāo) int center_Y; // 初始化Camera Camera camera = new Camera(); }
接下來(lái)要注意了
重寫(xiě)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)畫(huà)的執(zhí)行時(shí)間,3000毫秒 setDuration(3000L); setInterpolator(new AccelerateInterpolator()); }
寫(xiě)完這些以后就到了最關(guān)鍵的核心代碼了
/** * 在applyTransformation通過(guò)矩陣修改動(dòng)畫(huà) * 這里是自定義動(dòng)畫(huà)的核心,動(dòng)畫(huà)執(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)畫(huà)效果的實(shí)例代碼
- Android編程實(shí)現(xiàn)RotateAnimation設(shè)置中心點(diǎn)旋轉(zhuǎn)動(dòng)畫(huà)效果
- Android動(dòng)畫(huà)之漸變動(dòng)畫(huà)(Tween Animation)詳解 (漸變、縮放、位移、旋轉(zhuǎn))
- Android Tween動(dòng)畫(huà)之RotateAnimation實(shí)現(xiàn)圖片不停旋轉(zhuǎn)效果實(shí)例介紹
- Android開(kāi)發(fā)之圖形圖像與動(dòng)畫(huà)(二)Animation實(shí)現(xiàn)圖像的漸變/縮放/位移/旋轉(zhuǎn)
- Android實(shí)現(xiàn)旋轉(zhuǎn)動(dòng)畫(huà)的兩種方式案例詳解
相關(guān)文章
一個(gè)強(qiáng)大的側(cè)滑菜單控件ASwipeLayout
這篇文章主要為大家詳細(xì)介紹了強(qiáng)大的側(cè)滑菜單控件ASwipeLayout使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-08-08Android studio實(shí)現(xiàn)加法軟件
這篇文章主要為大家詳細(xì)介紹了Android studio實(shí)現(xiàn)加法軟件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03關(guān)于Android WebView的loadData方法的注意事項(xiàng)分析
本篇文章是對(duì)Android中WebView的loadData方法的注意事項(xiàng)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06Android中的導(dǎo)航navigation的使用詳細(xì)步驟
在Android中,導(dǎo)航主要通過(guò)使用Navigation SDK來(lái)實(shí)現(xiàn),該SDK提供了一組工具和組件,可以幫助開(kāi)發(fā)人員構(gòu)建具有一致性和可訪(fǎng)問(wèn)性的用戶(hù)界面,這篇文章主要介紹了Android中的導(dǎo)航navigation的使用詳細(xì)步驟,需要的朋友可以參考下2024-04-04Android View進(jìn)行手勢(shì)識(shí)別詳解
本文主要介紹 Android View進(jìn)行手勢(shì)識(shí)別,這里整理了相關(guān)資料和簡(jiǎn)單示例,有興趣的小伙伴可以參考下2016-08-08Android開(kāi)發(fā)之ListView列表刷新和加載更多實(shí)現(xiàn)方法
這篇文章主要介紹了Android開(kāi)發(fā)之ListView列表刷新和加載更多實(shí)現(xiàn)方法,實(shí)例分析了ListView列表操作的相關(guān)技巧,需要的朋友可以參考下2015-06-06Android 仿微信發(fā)動(dòng)態(tài)九宮格拖拽、刪除功能
這篇文章主要介紹了Android 仿微信發(fā)動(dòng)態(tài)九宮格拖拽、刪除功能,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11Android Studio 導(dǎo)入開(kāi)源項(xiàng)目的正確姿勢(shì)及注意事項(xiàng)
這篇文章主要介紹了Android Studio 導(dǎo)入開(kāi)源項(xiàng)目的正確姿勢(shì)及注意事項(xiàng),需要的朋友參考下吧2018-03-03