2013-03-10 6 views
22

हाय मेरे पास बेस 64 प्रारूप में एक स्ट्रिंग है। मैं इसे बिटमैप में परिवर्तित करना चाहता हूं और फिर इसे एक छवि दृश्य में प्रदर्शित करना चाहता हूं। यह कोड है:एंड्रॉइड सेट बिटमैप छविदृश्य

ImageView user_image; 
Person person_object; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.user_profile_screen); 

    // ImageViews 
    user_image = (ImageView) findViewById(R.id.userImageProfile); 

    Bundle data = getIntent().getExtras(); 
    person_object = data.getParcelable("person_object"); 
    // getPhoto() function returns a Base64 String 
    byte[] decodedString = Base64.decode(person_object.getPhoto(), Base64.DEFAULT); 

    Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); 
    user_image.setImageBitmap(decodedByte); 
    } 

यह कोड बेस 64 स्ट्रिंग सफलतापूर्वक प्राप्त करता है और मुझे कोई त्रुटि नहीं मिलती है। लेकिन यह छवि प्रदर्शित नहीं करता है। समस्या क्या हो सकती है? धन्यवाद

+0

कृपया इस पंक्ति जोड़ने का प्रयास करें: user_image.setScaleType (ScaleType.FIT_XY); – KEYSAN

+0

क्या यह संसाधन छवियों के साथ काम करता है? उदाहरण के लिए, यदि आप लिखना 'iuser_image.setImageResource (android.R.drawable.ic_delete)', यह कुछ भी दिखाई देगा? – vorrtex

उत्तर

29

इस प्रयास करें:

byte[] decodedString = Base64.decode(person_object.getPhoto(),Base64.NO_WRAP); 
InputStream inputStream = new ByteArrayInputStream(decodedString); 
Bitmap bitmap = BitmapFactory.decodeStream(inputStream); 
user_image.setImageBitmap(bitmap); 
+1

उत्तर के लिए धन्यवाद। लेकिन यह काम नहीं आया। मुझे लगता है कि मैं बिटमैप में सही ढंग से परिवर्तित करता हूं। बाद मैं देखने के लिए बिटमैप निर्धारित करते हैं, यह स्क्रीन पर देखा जा करने के लिए फिर से ताज़ा करने की आवश्यकता है? – kgnkbyl

+0

क्या आप उस छवि को देखने में सक्षम थे? – Anjula

6

पिकासो नाम के एक पुस्तकालय जो कुशलता से किसी URL से छवियों को लोड कर सकते है। यह एक फ़ाइल से एक छवि भी लोड कर सकते हैं।

उदाहरण:

  1. लोड यूआरएल imageView में एक बिटमैप पैदा करने के बिना:

    Picasso.with(this) 
         .load(artistImageUrl) 
         .into(new Target() { 
          @Override 
          public void onBitmapLoaded(final Bitmap bitmap, Picasso.LoadedFrom from) { 
           /* Save the bitmap or do something with it here */ 
    
           // Set it in the ImageView 
           theView.setImageBitmap(bitmap) 
          } 
    
          @Override 
          public void onBitmapFailed(Drawable errorDrawable) { 
    
          } 
    
          @Override 
          public void onPrepareLoad(Drawable placeHolderDrawable) { 
    
          } 
         }); 
    

वहाँ: एक बिटमैप उत्पन्न करके imageView में

Picasso.with(context) // Context 
     .load("http://abc.imgur.com/gxsg.png") // URL or file 
     .into(imageView); // An ImageView object to show the loaded image 
  • लोड यूआरएल कई और विकल्प हैं पिकासो में आयन उपलब्ध हैं। Here is the documentation

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