Android code to fetch Image from server and display it in Imageview

 ̄綄美尐妖づ 提交于 2019-11-29 17:47:41
Marius Kaunietis

There are several possible cases:

Case 1. Image is Base64, then you need to decode it and use BitmapFactory method:

byte[] decodedString = Base64.decode(encodedImage, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); 

Case 2. Json contains link to image. Simply load the link, and when you receive Stream object, pass it to BitmapFactory. Something like this:

InputStream instream = httpEntity.getContent();
bmp = BitmapFactory.decodeStream(instream);

Above example uses HttpClient class, search api docs on how to get InputStream from your used network library.

If you want to use Picasso Image library for this, you can do it like this:

if (object.has("profile_image") {
  Picasso.with(context).load(object.get("profile_image")).into(R.id.image_view);
}

Check out https://github.com/square/picasso for documentation.

This can be done using Picasso

for that add dependancy in build.gradle file of your project

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.0.1'
    compile 'com.android.support:design:23.0.1'
    compile 'com.squareup.picasso:picasso:2.4.0'
}

and add code in your method as below

if(object.has("profile_image")) {
    // imageView should be declared in layout xml file with id `imageView`
    ImageView imageView = (ImageView) context.findViewById(R.id.imageView);
    com.squareup.picasso.Picasso.with(context).
        load(object.get("profile_image")).
        placeholder(R.mipmap.ic_launcher).
        into(imageView);
}

and done.

NOTE : object.get("profile_image") should return full path of image.

for e.g. http://www.example.com/images/image1.jpg

then only it will work.

If your image data in "profile_image" is Base64 encoded string then you can convert to bitmap by following.

if(object.has("profile_image")) 
{
     byte[] decodedString = Base64.decode(object.getString("profile_image", Base64.DEFAULT);
     Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); 
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!