/ / Android OverScroller e prestazioni - android, prestazioni, android-scroll

OverScroller Android e prestazioni - android, prestazioni, scroll android

ho usato OverScroller per implementare la scroll della mia vista.

Ecco un codice:

@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();
}

Funziona bene. Ma sul dispositivo con schermo Full HD (Sony Xperia Z) il metodo suDraw chiama 4 volte. Su "Samsung Galaxy Note 2" chiama circa 10 volte. Quindi su xperia vedo dei ritardi. Cosa posso fare per migliorare le prestazioni?

UPD: Ecco il codice completo http://xsnippet.org/359714

risposte:

1 per risposta № 1

dovresti sovrascrivere computeScroll () per cose del genere e non suDraw ()


-1 per risposta № 2

Puoi scavalcare onFinishInflate () metodo nella tua classe View personalizzata e puoi scrivere il codice relativo a OverScroll con questo metodo invece di OnDraw (). Per maggiori dettagli clicca qui.