2015-05-23
9:11 PM
以往在撰寫 Flash 及網頁時
若要加入互動效果,我們常常會使用一個叫做 Tweener 的引擎
使用 Tweener 後可以很容易地達成物件的移動與淡出淡入等特效
如此一來就可以增加介面的互動效果達到更好的使用者體驗
以下就來介紹如何在 Android 內使用 Tweener
首先須下載 Universal Tween Engine
程式碼範例
首先須宣告 TweenManager 以及控制 Renderer 的 boolean 值
// 所有 Tweener 皆須傳入此 Manager private final TweenManager tweenManager = new TweenManager(); // 設為 false 則停止 renderer private boolean isAnimationRunning = true;
新增一個多執行緒的 renderer (可在 onCreate 或 onResume 內新增) 並註冊 Accessor
// 註冊各類別處理器 Tween.registerAccessor(Button.class, new ButtonAccessor()); // Renderer new Thread(new Runnable() { private long lastMillis = -1; @Override public void run() { while (isAnimationRunning) { if (lastMillis > 0) { long currentMillis = System.currentTimeMillis(); final float delta = (currentMillis - lastMillis) / 1000f; runOnUiThread(new Runnable() { @Override public void run() { tweenManager.update(delta); } }); lastMillis = currentMillis; } else { lastMillis = System.currentTimeMillis(); } try { // 60 FPS Thread.sleep(1000/60); } catch(InterruptedException ex) { } } } }).start();
之後便可任意呼叫 Tweener 以及 Timeline
Tween.to(loginBtn, ButtonAccessor.ALPHA, 0.1f).target(0.5f).ease(Quad.OUT).start(tweenManager); Timeline.createSequence() .push( Tween.to(loginBtn, ButtonAccessor.ALPHA, 0.1f).target(0.1f).ease(Quad.OUT) ) .push( Tween.to(loginBtn, ButtonAccessor.ALPHA, 0.3f).target(1).ease(Quad.OUT) ) .start(tweenManager);
各項資料連結
Universal Tween Engine(Google Code)
Universal Tween Engine(GitHub)
No comments:
Post a Comment