Este necesar să rezolvăm următoarea problemă: există o listă în fiecare punct în care există un cerc - un marcator care trebuie să fie în fiecare element de altă culoare, canalele RGB sunt înregistrate în trei tablouri. Mai intai am incercat sa fac fara o poza: am creat doar o pânza, am desenat-o, am transformat-o intr-un bitmap si la rindul meu sunt trasabil, dar aceasta incercare nu a produs nici un rezultat,
a încercat în continuare acest lucru: a aruncat cu model png cerc, o transformă într-o matrice de pixeli, iar fiecare pixel al ciclului sa schimbat, nimic nu a venit din ea, aceeași eroare. de mai jos fragment de cod
06-04 16: 05: 10.978: E / BitmapFactory (1233): Nu se poate decoda stream: java.io.FileNotFoundException: /android.graphics.drawable.BitmapDrawable@527e700c. deschis nu a reușit: ENOENT (nu există un astfel de fișier sau director)
Motivul pentru acest comportament este simplu, iar explicația este conținută destul de ciudat în documentație:
urmatoarele viziuni sunt incercate in urmatoarea ordine:
- O vizualizare care implementează Checkable (de exemplu, CheckBox). Valoarea așteptată a legăturii este booleană.
- TextView. Valoarea de legare așteptată este un șir și setViewText (TextView, String) este invocat.
- ImageView. Valoarea bind așteptată este o resursă id-ul sau un șir de caractere și setViewImage (ImageView, int) sau setViewImage (ImageView, String) este invocată.
Acordați atenție părții evidențiate. Rezultă că pentru ImageView SimpleAdapter se așteaptă ca int. sau String. interpretându-le ca id de resurse sau cale de fișier, respectiv. Ați pus o copie a traseului în hartă.
Modul corect de ieșire din această situație nu este acela de a utiliza SimpleAdapter. și moșteniți adaptorul direct de la BaseAdapter. punerea în aplicare a metodelor necesare.