2010-02-22 3 views
16

zuweisen möchten, ist im Zusammenhang mit:ImageView.setImageURI funktioniert nicht, wenn ein R.drawable.X Uri

Need suggestion about a mixed "Uri/int id" images ambient

jetzt mein Problem ist, dass:

ImageView imgView=(ImageView)findViewById(R.id.imgView); 
Uri imgUri=Uri.parse("android.resource://my.package.name/"+R.drawable.image); 
imageView.setImageURI(imgUri); 

funktioniert nicht. Warum?

ich weiß, dass

imgView.setImageDrawable(Drawable.createFromStream(
        getContentResolver().openInputStream(imgUri), 
        null)); 

Arbeit.

aber das bedeutet nicht mein Problem lösen. weil ich will, um das Bild mit einem uri independenty setzen, wenn diese von einer Ressource kommen oder von der Kamera ACTION_PICK Absicht kommt ...

Anregungen sind willkommen. Danke. Grüße

+1

Ich kann nicht glauben, dass niemand das gleiche Problem hatte ... noch gibt es keine Lösungen ... warum solche Sachen, die nicht berufstätig sind? Warum überhaupt nicht dokumentiert ist? – Qlimax

Antwort

49

Versuchen Sie, diese

Uri imgUri=Uri.parse("android.resource://my.package.name/"+R.drawable.image); 
imageView.setImageURI(null); 
imageView.setImageURI(imgUri); 

Dies ist eine Abhilfe ist eine Image zum Auffrischen, die das vorherige Bild Uri zu zwischenzuspeichern versucht. Passing null setzt es effektiv zurück.

Lösung aus diesem Buch vorgeschlagen: Sams Teach Yourself Android Application Development in 24 Hours - Sehr empfehlenswert zu lesen.

+3

Danke. Android ist grauenhaft, es hat die Hälfte meines Tages verschwendet. Ihre Lösung hat es geschafft. – andude

+0

Danke! Übrigens hat es bei sehr großen Bildern nicht funktioniert. Bei kleinen Bildern funktioniert es ganz gut. – walla

+0

@walla Das hat auch nicht für mich funktioniert. Hast du eine andere Antwort? –

0

imageView.postInvalidate() funktioniert. Oder imageView.invalidate(), wenn Sie auf dem UI-Thread sind.

Verwandte Themen