3

I am new to android.The Image is store in server by Base64 format. so how can i get it from server to My Project and set to my ImageView using Json Object. Please Help me

Any help will be Appappreciated

3 Answers3

5

Try this:

Convert Url to byte[] first:

byte[] bitmapdata = getByteArrayImage(url);

Method:

private byte[] getByteArrayImage(String url){
         try {
                 URL imageUrl = new URL(url);
                 URLConnection ucon = imageUrl.openConnection();

                 InputStream is = ucon.getInputStream();
                 BufferedInputStream bis = new BufferedInputStream(is);

                 ByteArrayBuffer baf = new ByteArrayBuffer(500);
                 int current = 0;
                 while ((current = bis.read()) != -1) {
                         baf.append((byte) current);
                 }

                 return baf.toByteArray();
         } catch (Exception e) {
                 Log.d("ImageManager", "Error: " + e.toString());
         }
         return null;
    }

Now convert the byte[] to bitmap

Bitmap bitmap = BitmapFactory.decodeByteArray(bitmapdata , 0, bitmapdata .length);

And set your bitmap to your ImageView:

img= (ImageView) findViewById(R.id.imgView);
img.setImageBitmap(bitmap );
Jas
  • 3,207
  • 2
  • 15
  • 45
1

I found easy solution:

byte[] img = Base64.decode(userHeader.GetImage(), Base64.DEFAULT);
                Bitmap bitmap = BitmapFactory.decodeByteArray(img, 0, img.length);
                imageww.setImageBitmap(getCircleBitmap(bitmap));
0

Using Apache's commons-io-2.5 lib we can get using this function IOUtils.toByteArray(is)

public static String getByteArrayFromURL(final  String url) {
        String base64Image = "";
        ExecutorService executor = Executors.newSingleThreadExecutor();
        Future<String> result = executor.submit(new Callable<String>() {
            public String call() throws Exception {
                try {

                    URL imageUrl = new URL(url);
                    URLConnection ucon = imageUrl.openConnection();
                    InputStream is = ucon.getInputStream();
                    return Base64.encodeToString(IOUtils.toByteArray(is), Base64.NO_WRAP);
                } catch (Exception e) {

                    e.printStackTrace();
                }
                return null;
            }
        });

        try {
            base64Image = result.get();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
        return base64Image;
    }
Rajesh N
  • 6,198
  • 2
  • 47
  • 58