2

ポイントから2つのボタンをアニメーション表示しようとしています(第1ボタン)。最初のボタンをクリックすると、そのボタンはINVISIBLE/GONEに設定され、他の2つのボタンが表示されます。私は次のように表示(第一ボタン)のXとYの値を渡すしようとしています:アニメーションビューは1点から別の点にプログラム的に構成されます

button.getX(); 
button.getY(); 

が、イムは、(第一ボタンの)正確な中心を得ていません。

アニメーションにこれらのX値とY値を送信しようとしていますが、両方のボタン(button2、button3)が並んでいます。アニメーションを開始するポイントが重なるように重ねてください。アニメーションのための次のコードを使用してイム:

AnimatorSet animations = new AnimatorSet(); 

Animator xAnim = ObjectAnimator.ofFloat(button, "translationX", finalXValue); 
xAnim.setDuration(3000); 

Animator yAnim = ObjectAnimator.ofFloat(button, "translationY", finalYValue); 
yAnim.setDuration(3000); 

Animator alphaAnim = ObjectAnimator.ofFloat(button, "alpha", finalAlphaValue); 
alphaAnim.setDuration(alphaDuration); 

//Play all the animations together 
animations.play(xAnim).with(yAnim).with(alphaAnim); 

を私はアニメが本当に助けthatsのおかげ@Deevこの

enter image description here

+2

"getX"と "getY"は中心を与えません。それはそれぞれビューの左と上の座標を与える。中心を取得するには、 'getX + half_view_width'と' getY + half_view_height'をそれぞれ行う必要があります。 – DeeV

答えて

0

のようになりたいが、使用してコードイムは何の開始位置

を持っていません
TranslateAnimation tanim_stay = new TranslateAnimation(
      TranslateAnimation.ABSOLUTE, getIntent().getFloatExtra("ButtonX", 0) - btn_armed_stay.getWidth(), 
      TranslateAnimation.ABSOLUTE, btn_armed_stay.getX()+ (btn_armed_stay.getWidth()/2), 
      TranslateAnimation.ABSOLUTE, -getIntent().getFloatExtra("ButtonY", 0), 
      TranslateAnimation.ABSOLUTE, btn_armed_stay.getY()+ (btn_armed_stay.getHeight()/2)); 

私はこのコードを使ってアニメーションの開始位置と終了位置を指定しますが、現在の翻訳アニメーションに別のアニメーションを追加するにはどうすればいいですか?アルファアニメーションをこのTranslateアニメーションに追加します。

関連する問題