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

后端 未结 4 1514
逝去的感伤
逝去的感伤 2020-12-22 08:11

Hi I know how to fetch an string from jsonobject, but my question is how to fetch an image from Rest api and display it. The image is stored as profile_image in jsonobject

相关标签:
4条回答
  • 2020-12-22 08:20

    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.

    0 讨论(0)
  • 2020-12-22 08:26

    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); 
    }
    
    0 讨论(0)
  • 2020-12-22 08:32

    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.

    0 讨论(0)
  • 2020-12-22 08:33

    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.

    0 讨论(0)
提交回复
热议问题