カスタムビューで(ボタンを押すかイベントで)次のスクロール位置にスムーズに移動したいと思います。これを実装する方法?まず、スクロールアニメーションクラスが表示されません(アルファ、回転、拡大縮小、移動のみ)。次に、アニメーションクラスがあるため、反復的なもの(たとえば、100ピクセルの権利をスクロールする位置)を絶対的なもの(つまり、ある定数値から別の値にアニメーション化するもの)だけを見ることができません。
ScrollViewを使用している場合、smoothScrollTo(...)は機能しますか?
http://developer.Android.com/reference/Android/widget/ScrollView.html#smoothScrollTo%28int,%20int%29
ObjectAnimator
を使用すると、これは上にスクロールするためのサンプルです。
public void scrollToTop() {
int x = 0;
int y = 0;
ObjectAnimator xTranslate = ObjectAnimator.ofInt(mScrollView, "scrollX", x);
ObjectAnimator yTranslate = ObjectAnimator.ofInt(mScrollView, "scrollY", y);
AnimatorSet animators = new AnimatorSet();
animators.setDuration(1000L);
animators.playTogether(xTranslate, yTranslate);
animators.addListener(new AnimatorListener() {
@Override
public void onAnimationStart(Animator arg0) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationRepeat(Animator arg0) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationEnd(Animator arg0) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationCancel(Animator arg0) {
// TODO Auto-generated method stub
}
});
animators.start();
}
スクロールのアニメーション化は、Scroller/OverScroller(スクロールオフセットの時間補間値を計算するため)を使用してGestureDetectorsを組み合わせて行われます。 (スクローラーオブジェクトを開始するため)およびビューのonComputeScrollメソッド(暗黙的にアニメーションループです)。
公式のAndroidドキュメントに、このトピックに関する詳細なチュートリアルが追加されました http://developer.Android.com/training/gestures/scroll.html
view_cache_demo サンプルコードを参照して、アニメーションスクロールの方法を確認してください。 2Dで動作し、複雑な描画をキャッシュし、フリングジェスチャも処理しますが、必要に応じてすべてを簡略化できます。