/ / Android OverScroller и производителност - Android, ефективност и Android-превъртете

Android OverScroller и производителност - Android, ефективност и 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

Отговори:

1 за отговор № 1

трябва да преименувате computeScroll () за такива неща, а не за Draw ()


-1 за отговор № 2

Можете да промените onFinishInflate () метод в своя персонализиран клас "Изглед" и можете да напишете код, свързан с OverScroll, по този метод вместо onDraw (), За повече подробности Натисни тук.