如何从android中重定向url加载图像

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从android中重定向url加载图像相关的知识,希望对你有一定的参考价值。

嗨,我正面临这个问题 我从RESTCall获取了一个URL 网址是http://hck.re/kWWxUI 但是当我在浏览器中检查时,它会重定向到https://s3-ap-southeast-1.amazonaws.com/he-public-data/afreen2ac5a33.jpg 如何将此图像加载到我的imageView中我已经知道如何将毕加索的图像加载到imageView中。任何帮助,将不胜感激

编辑:我已添加此代码

 OkHttpClient client = new OkHttpClient();
    Picasso picasso = new Picasso.Builder(context)
            .downloader(new OkHttp3Downloader(client))
            .build();

    picasso.load(music.getUrl())
            .fit()
            .into(holder.cover_image);

没有运气

答案

custom Picasso.Java

import android.content.Context;
import android.util.Log;

import com.jakewharton.picasso.OkHttp3Downloader;
import com.squareup.picasso.Picasso;

/**
 * Created by Hrishikesh Kadam on 19/12/2017
 */

public class CustomPicasso {

    private static String LOG_TAG = CustomPicasso.class.getSimpleName();
    private static boolean hasCustomPicassoSingletonInstanceSet;

    public static Picasso with(Context context) {

        if (hasCustomPicassoSingletonInstanceSet)
            return Picasso.with(context);

        try {
            Picasso.setSingletonInstance(null);
        } catch (IllegalStateException e) {
            Log.w(LOG_TAG, "-> Default singleton instance already present" +
                    " so CustomPicasso singleton cannot be set. Use CustomPicasso.getNewInstance() now.");
            return Picasso.with(context);
        }

        Picasso picasso = new Picasso.Builder(context).
                downloader(new OkHttp3Downloader(context))
                .build();

        Picasso.setSingletonInstance(picasso);
        Log.w(LOG_TAG, "-> CustomPicasso singleton set to Picasso singleton." +
                " In case if you need Picasso singleton in future then use Picasso.Builder()");
        hasCustomPicassoSingletonInstanceSet = true;

        return picasso;
    }

    public static Picasso getNewInstance(Context context) {

        Log.w(LOG_TAG, "-> Do not forget to call customPicasso.shutdown()" +
                " to avoid memory leak");

        return new Picasso.Builder(context).
                downloader(new OkHttp3Downloader(context))
                .build();
    }
}

build.gradle(模块:app)

android {

    ...

}

dependencies {

    ...

    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.jakewharton.picasso:picasso2-okhttp3-downloader:1.1.0'
}

用法 -

CustomPicasso.with(context)
    .load("http://hck.re/kWWxUI")
    .into(imageView);

有关最新版本,请查看CustomPicasso gist - https://gist.github.com/hrishikesh-kadam/09cef31c736de088313f1a102f5ed3a3

以上是关于如何从android中重定向url加载图像的主要内容,如果未能解决你的问题,请参考以下文章

如何确定 URL 是不是在 PHP 中重定向?

使用 Microsoft 在 Android 应用程序中重定向 URL

如何在android中使用imageloader释放位图内存?

如何使用重定向 url 加载网络图像?

在spring MVC中重定向期间传递模型属性并避免在URL中相同

如何在 React 中重定向