0

私は自分のアプリケーションにチャットヘッドを実装しようとしています。私はすべての作業を得ることができた、onClickカスタムレイアウトは、webviewといくつかのボタンを持つ相対レイアウトです開く。チャットヘッドは、クリックして同時に定義されたレイアウトを開くと、右上に移動します。 私が直面している唯一の問題は、チャットヘッドの翻訳です。右上隅に移動すると、アニメーションが与えられていないのでスムーズに移動しません。 私はmwthodを探して、私が使ったValueAnimatorを見つけました。windowmanager浮動レイアウトをアニメーションで斜めに翻訳するには? (ChatHeadクリックアニメーション)

 private ValueAnimator mMoveEdgeAnimator; 


     mParams.y = goalPositionY; 

     mMoveEdgeAnimator = ValueAnimator.ofInt(currentX, goalPositionX); 
     mMoveEdgeAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { 
      @Override 
      public void onAnimationUpdate(ValueAnimator animation) { 
       mParams.x = (Integer) animation.getAnimatedValue(); 
       mWindowManager.updateViewLayout(FloatingView.this, mParams); 
      } 
     }); 

     mMoveEdgeAnimator.setDuration(MOVE_TO_EDGE_DURATION); 
     mMoveEdgeAnimator.setInterpolator(mMoveEdgeInterpolator); 
     mMoveEdgeAnimator.start(); 

しかし、それだけで画面上にシームレスに見えない軸XまたはYのいずれか一方のために動作しますが、私はそれがFacebookのchatheadはonClickのをどのように反応するかに斜めに類似した翻訳したいです。

どのように対角線上で翻訳できますか?また、windowManager.addView()でgrowアニメーションを適用するにはどうすればよいですか?

ありがとうございます!

答えて

0

プロパティ値ホルダを使用すると、xとyをアニメーションできます。

public void animate(final View v, int startX, int endX, int startY, int endY) { 

    PropertyValuesHolder pvhX = PropertyValuesHolder.ofInt("x", startX, endX); 
    PropertyValuesHolder pvhY = PropertyValuesHolder.ofInt("y", startY, endY); 

    ValueAnimator translator = ValueAnimator.ofPropertyValuesHolder(pvhX, pvhY); 

    translator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { 
     @Override 
     public void onAnimationUpdate(ValueAnimator valueAnimator) { 
      WindowManager.LayoutParams layoutParams = (WindowManager.LayoutParams) v.getLayoutParams(); 
      layoutParams.x = (Integer) valueAnimator.getAnimatedValue("x"); 
      layoutParams.y = (Integer) valueAnimator.getAnimatedValue("y"); 
      windowManager.updateViewLayout(v, layoutParams); 
     } 
    }); 

    translator.setDuration(100); 
    translator.start(); 
} 
関連する問題