Search

Android - Tweener 的 Accessor

2015-05-23 9:17 PM

Accessor 是針對 Java 特性加入的一個 Interface

Tweener 需要依靠實作此 Interface 的 Class 來渲染動畫效果

程式碼範例
 public class ButtonAccessor implements TweenAccessor<Button> {

    // 自訂義 Tween 類型, 用以判別在實作的 Method 內需處理的對象
    public static final int POSITION = 1;
    public static final int ALPHA = 2;

    @Override
    public int getValues(Button target, int tweenType, float[] returnValues) {
        switch (tweenType) {
            case POSITION:
  // 由物件內取回實際值
                returnValues[0] = target.getX();
                returnValues[1] = target.getY();
  // 修改 2 個屬性, 因此回傳 2
                return 2;
            case ALPHA:
                returnValues[0] = target.getAlpha();
  // 修改 1 個屬性, 回傳 1
                return 1;
            default:
                return -1;
        }
    }

    @Override
    public void setValues(Button target, int tweenType, float[] newValues) {
        switch (tweenType) {
            case POSITION:
  // 設定新屬性
                target.setX(newValues[0]);
                target.setY(newValues[1]);
                break;
            case ALPHA:
  // 設定新屬性(需對應 getValues 的設定)
                target.setAlpha(newValues[0]);
                break;
            default:
                break;
        }
    }
各項資料連結
Universal Tween Engine(Google Code)
Universal Tween Engine(GitHub)

No comments:

Post a Comment