欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android自定義動(dòng)畫(huà)根據(jù)控件Y軸旋轉(zhuǎn)動(dòng)畫(huà)(仿紅包)

 更新時(shí)間:2018年06月12日 11:13:45   作者:富江___  
這篇文章主要介紹了Android自定義動(dòng)畫(huà)根據(jù)控件Y軸旋轉(zhuǎn)動(dòng)畫(huà)(仿紅包),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

這里給正在學(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í)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論