2011-07-10 10 views
1

アニメーション中にビューの座標を変更するにはどうすればよいですか?たとえば、画面上のビューを左から右に翻訳している場合は、Viewがその動きの右にすべてをプッシュするようにしますか?Android 2.3:ビューのアニメーション?

public Animation expandHiddenPanel(final View v, final boolean expand) { 
    panelExpanded = expand; 
    v.measure(MeasureSpec.makeMeasureSpec(200, MeasureSpec.AT_MOST), 
       MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); 

    final int initialWidth = v.getMeasuredWidth(); 
    Log.i("test", "initialWidth = " + initialWidth); 

    v.getLayoutParams().width = 0; 
    v.setVisibility(View.VISIBLE); 

    Animation a = new Animation() { 
     @Override 
     protected void applyTransformation(float interpolatedTime, Transformation t) { 
      int newWidth; 

      if (expand) { 
       newWidth = (int)(initialWidth * interpolatedTime); 
       Log.i("test", "new Width = " + newWidth); 
      } 
      else { 
       newWidth = (int)(initialWidth * (1 - interpolatedTime)); 
       Log.i("test", "new Width = " + newWidth); 
      } 

      v.getLayoutParams().width = newWidth; 
      v.requestLayout(); 
     } 

     @Override 
     public boolean willChangeBounds() { 
      return true; 
     } 
    }; 

    a.setInterpolator(new AccelerateInterpolator()); 
    a.setDuration(2500); 
    a.setFillAfter(true); 
    v.startAnimation(a); 

    return a; 
} 
+0

1つのアクティビティから次のアクティビティに移行しようとしていますか?実際にあなたが求めていることに従わずに、私たちにいくつかのコードを表示できますか? – Idistic

+0

基本的には、私がやっていることは、デフォルトで折りたたまれているパネルを左側にスライドさせ(スライド式の引き出しのように)、右側に隣接するビューの内容をプッシュすることです。 –

+0

ViewSwitcherの使用について考えましたか? – Idistic

答えて

2

私は、私のパネルの上にメインのレイアウトを重ね、私のメインのレイアウトの左上隅にボタンを配置し、と私はパッドに上記の私のメインのレイアウトの左マージンを掲載コードを変更することで、これを固定パネルを明らかにする。

スライド引き出し効果を得るために、私はパネルの視認性を変更し、同じ継続時間で実行された翻訳アニメーションを適用し、同じインターポレータを使用しました。

関連する問題