您好,登錄后才能下訂單哦!
這篇文章給大家介紹如何在Android中自定義動畫根據控件Y軸旋轉動畫,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
//自定義一個類繼承Animation(android.view.animation.Animation)抽象類 public class MyAnimation extends Animation { // 先定義成員變量 //X軸的中心坐標 int center_X; //Y軸的中心坐標 int center_Y; // 初始化Camera Camera camera = new Camera(); }
接下來要注意了
重寫initialize()方法
/** * 在initialize對變量進行初始化 * @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 中心點坐標 center_X = width/ 2; center_Y = height / 2; //動畫的執行時間,3000毫秒 setDuration(3000L); setInterpolator(new AccelerateInterpolator()); }
寫完這些以后就到了最關鍵的核心代碼了
/** * 在applyTransformation通過矩陣修改動畫 * 這里是自定義動畫的核心,動畫執行的過程中一直在回調這個方法 * 每次回調這個方法interpolatedTime都會改變 * @param interpolatedTime * @param t */ @Override protected void applyTransformation(float interpolatedTime, Transformation t) { final Matrix matrix = t.getMatrix(); //儲蓄 camera.save(); //中心是繞Y軸旋轉,這里可以自行設置其他軸 camera.rotateY(1080 * interpolatedTime); //加在變換矩陣上 camera.getMatrix(matrix); //設置翻轉中心點 matrix.preTranslate(-center_X, -center_Y); matrix.postTranslate(center_X, center_Y); //恢復 camera.restore(); }
關于如何在Android中自定義動畫根據控件Y軸旋轉動畫就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。