How to get byte Image From url in Android

点点圈 提交于 2020-05-17 03:01:14

问题


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


回答1:


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 );



回答2:


I found easy solution:

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



回答3:


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;
    }



回答4:


Try this:

URL u = new URL(content);
openStream = u.openStream();
int contentLength = openStream.available();
byte[] binaryData = new byte[contentLength];
openStream.read(binaryData);
openStream.close();


来源:https://stackoverflow.com/questions/33012504/how-to-get-byte-image-from-url-in-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!