Я использовал OverScroller для реализации прокрутки моего представления.Android OverScroller и производительность
Вот код:
@Override
protected void onDraw(Canvas canvas) {
if (scroller.computeScrollOffset()){
int x = scroller.getCurrX();
int y = scroller.getCurrY();
scrollTo(x, y);
ViewCompat.postInvalidateOnAnimation(this);
}
super.onDraw(canvas);
}
public void open(){
scroller.startScroll(0, 0, 0, -mContent.getMeasuredHeight(), ANIMATION_TIME);
invalidate();
}
public void close(){
scroller.startScroll(0, getScrollY(), 0, mContent.getMeasuredHeight(), ANIMATION_TIME);
invalidate();
}
Он отлично работает. Но на устройстве с экраном Full HD (Sony xperia Z) метод onDraw вызывает 4 раза. В «Samsung Galaxy Note 2» он вызывает около 10 раз. Следовательно, на xperia я вижу лаги. Что я могу сделать для повышения производительности?
UPD: Вот полный код http://xsnippet.org/359714
Я уже это сделал. http://xsnippet.org/359714/ – Vetalll