2010-02-22 16 views
16

असाइन करने की कोशिश काम नहीं करता है से संबंधित है:ImageView.setImageURI जब एक R.drawable.X उरी

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

अब मेरी समस्या यह है कि यह है:

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

काम नहीं करता है। क्यूं कर?

मुझे पता है कि

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

काम करते हैं।

लेकिन यह मेरी समस्या का समाधान नहीं करता है। क्योंकि मैं छवि को एक यूरी स्वतंत्रता से सेट करना चाहता हूं अगर यह संसाधन से आती है या कैमरे से आती है ACTION_PICK इरादा ...

कोई सुझाव स्वागत है। धन्यवाद। सादर

+1

मैं विश्वास नहीं कर सकता कि किसी को भी कोई समस्या नहीं है ... और न ही कोई समाधान नहीं है ... क्यों ऐसी चीजें काम नहीं कर रही हैं? बिल्कुल दस्तावेज क्यों नहीं हैं? – Qlimax

उत्तर

49

इस

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

प्रयास करें यह एक ImageButton, जो पिछले छवि उरी कैश करने के लिए कोशिश करता है ताज़ा करने के लिए एक समाधान नहीं है। पासिंग null प्रभावी रूप से इसे रीसेट करता है।

इस पुस्तक से सुझाए गए समाधान: Sams Teach Yourself Android Application Development in 24 Hours - पढ़ने के लिए अत्यधिक अनुशंसित।

+3

धन्यवाद। एंड्रॉइड अत्याचारी है, यह मेरे दिन का आधा बर्बाद हो गया। आपके समाधान ने चाल की है। – andude

+0

धन्यवाद! बीटीडब्ल्यू यह मेरे लिए बहुत बड़ी छवियों पर काम नहीं करता .. छोटी तस्वीरों पर यह ठीक काम करता है। – walla

+0

@walla यह मेरे लिए भी काम नहीं करता है। क्या आपके पास दूसरा जवाब है? –

0

imageView.postInvalidate() काम करता है। या imageView.invalidate() यदि आप यूआई थ्रेड पर हैं।

संबंधित मुद्दे