這篇文章給大家介紹如何在Android中自定義動(dòng)畫根據(jù)控件Y軸旋轉(zhuǎn)動(dòng)畫,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
創(chuàng)新互聯(lián)建站長(zhǎng)期為上1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為寧晉企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè),寧晉網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
//自定義一個(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(); }
接下來要注意了
重寫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通過矩陣修改動(dòng)畫 * 這里是自定義動(dòng)畫的核心,動(dòng)畫執(zhí)行的過程中一直在回調(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(); }
關(guān)于如何在Android中自定義動(dòng)畫根據(jù)控件Y軸旋轉(zhuǎn)動(dòng)畫就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
網(wǎng)頁標(biāo)題:如何在Android中自定義動(dòng)畫根據(jù)控件Y軸旋轉(zhuǎn)動(dòng)畫
標(biāo)題網(wǎng)址:http://bm7419.com/article38/jdecsp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、標(biāo)簽優(yōu)化、網(wǎng)站導(dǎo)航、網(wǎng)站排名、網(wǎng)站策劃、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)