Bazându-se pe panza, fanclub utilizatorii Android
Pictura pe panza este cel mai bine utilizat atunci când fereastra de aplicare ar trebui să se aspira în mod regulat în timpul aplicării. De exemplu, trebuie să creați un program în continuă schimbare, atunci când în curs de dezvoltare jocuri. desen dinamic pe procesul kanve- este destul de lent. În total există două modalități de a pune în aplicare desen pe pânză:
- în fluxul principal al programului, care începe să funcționeze, creați propria componentă View, apoi apel invalida () metoda și procesul de a crea metoda grafică de apel invers OnDraw ();
- într-un flux separat - prin obiectul SurfaceView.
panza Class are propriul set de metode pentru desen, pe care le puteți utiliza, de exemplu, drawBitmap (), drawRect (), drawText () și multe altele. Alte clase pe care le-ar putea folosi, de asemenea, o metodă de extragere (). De exemplu, puteți crea obiecte drawable și a le transfera pentru a desena pe panza. clasa drawable are metoda sa proprie tragere (). obiect panza care ia ca parametru.
Canvas este de fapt o suprafață pe care va fi întocmit graficul. Când faci un desen în cadrul metodei de apel invers View.onDraw (). Sistemul transmite un obiect parametru Canvas. Puteți obține, de asemenea, un obiect Canvas prin apelarea SurfaceHolder.lockCanvas (). dacă aveți de-a face cu un obiect SurfaceView.
Sistemul Android este OnDraw), metoda (după cum este necesar. De fiecare dată când imaginea pe pânză, care necesită o redesenare, trebuie să apelați metoda dezminti () .Se impune actualizarea sistemului de raportare, iar sistemul Android face apoi metoda OnDraw ().
Deoarece ShapeDrawable are metoda sa proprie tragere (). puteți crea o subclasă de vedere. care atrage ShapeDrawable metoda codului callback View.onDraw (). de exemplu:
Luând exemplul anterior, în cazul în care ne-am încărcat primitivelor grafice în widget-ul de fundal ImageView. a crea o aplicație care va fi trasă aceeași primitivele pe reprezentarea panza. Crearea unui nou proiect în Eclipse și completați fereastra New Android proiect:
Anexa cu excepția activităților de clasă DrawCanvasActivity nevoie de DrawCanvasView clasă suplimentară. derivate din clasa View. care va juca rolul de suprafață pentru a desena cifrele noastre. DrawCanvasView obiect este ecranul principal pentru aplicațiile fereastra de activitate.
După crearea grafica primitivă ShapeDrawable DrawCanvasView obiect la obiect pentru a desena pe panza. Clasa DrawCanvasActivity Codul de activitate este prezentată în Listing.
fișier Clasa de activitate DrawCanvasActivity.Java
In DrawCanvasView clasă prin metoda deschisă setDrawable (ShapeDrawable) transmis obiect ShapeDrawable. care va fi desenat pe reprezentarea panza. Aceeași metodă se numește dezminti (), care necesită revopsire reprezentare a sistemului. După executarea sistemului Android va apela implementarea metodei OnDraw (). care produce redesena vizualizarea pânză.
La punerea în aplicare a metodei callback OnDraw () componentă utilizată vizualizare pânză obiect. furnizate de sistemul pentru toate desen. Odată ce OnDraw () metoda este executată, sistemul Android va folosi panza obiect. pentru a actualiza programul privind reprezentarea suprafeței.
DrawCanvasView.Java fișier de clasă
Compilați și a alerga proiectul de execuție. Aspectul aplicației este similar cu exemplul anterior. La selectarea unui element de meniu pe reprezentarea panza va alege o grafică corespunzătoare primitiv.
Desen de obiecte grafice pe panza