2013-02-28 165 views
1

我想在佈局中點擊按鈕時將LinearLayout的一半移出屏幕,並且當按下一半按鈕移出佈局時,它將返回到其原始位置。Android動畫+移動佈局

我知道這可以簡單地通過使用翻譯佈局和將佈局的x位置從0%移動到-50%來完成,並且相反。

我面臨的問題是:

  • 雖然佈局繪製半出它實際上沒有移動即佈局被抽出,但座標(採取在點擊)它的孩子都是不據此搬到新的位置。

是否有任何方法來移動佈局屬性。我想要當第一次點擊的按鈕將其移出一半時第二次點擊回滾佈局。

+0

試試這個:http://developer.android.com/reference/android/animation/ObjectAnimator.html - 對於較老的Android API:http://nineoldandroids.com/ – damian 2013-02-28 12:38:33

+0

我有同樣的問題!! – Bhimbim 2014-03-21 06:45:45

回答

0

這應該給你一展身手:

@SuppressWarnings("unused") 
private void setLeftMargin(int value) { 
    ((LinearLayout.LayoutParams)myLinearLayout.getLayoutParams()).leftMargin = value; 
    myLinearLayout.requestLayout(); 
} 

用途:用於動畫庫

ObjectAnimator.ofInt(this, "leftMargin", 
      0, -1 * halfWidth).setDuration(ANIM_DURATION).start(); 

ObjectAnimator.ofInt(this, "leftMargin", 
      -1 * halfWidth, 0).setDuration(ANIM_DURATION).start(); 

閱讀@達米安的評論。