android - Speed up bitmap animation in custom View -
in custom view have 1 animation need run @ demand (on tile click). using method:
public boolean ontouchevent(motionevent event) { switch(event.getaction()){ case motionevent.action_down: //check tile clicked gethandler().removecallbacks(explosionthread); gethandler().post(explosionthread); } } break; } return super.ontouchevent(event); }
so calling (or sending view thread, specific) runnable calls self until comes end of image...
private runnable explosionthread=new runnable(){ @override public void run() { invalidate(); if(expcount<15){ gethandler().postdelayed(this, 10); } } };
in ondraw() method implemented logic go threw bitmap , draw on screen ( using cnavas.drawbitmap(bitmap,srcrect,destrect,paint)....
now, want avoid using surfaceview (i have 1 animation , view uses less resources). think animation slow because ondraw needs draw whole screen each time invalidate() called witch can slow ( drawing 64 tiles png images). know there overload of invalidate method, invalidate(rect dirty) don't know how use it. if u think that answer please write how avoid drawing whole ondraw method ( or method can overwrite used invalidate(rect) method, if there any).
if have other better way speed animation post plz. in advance....
that's right. 1 of way speed rendering through canvas use invalidate(rect). rect passed invalidate method defines area redrawn. ondraw called after invalidate clipping region being set on canvas. "drawbitmap" clipped rect.
Comments
Post a Comment