图片加载框架四大之一Picasso 加载 Https 图片的那些套路
来源:互联网 发布:网吧会员软件 编辑:程序博客网 时间:2024/05/23 13:37
Picasso
废话少说直接上代码
compile ‘com.squareup.picasso:picasso:2.5.2’
compile ‘com.squareup.okhttp3:okhttp:3.7.0’
package com.example.qundui.learndemo;
import android.content.Context;
import android.net.Uri;
import android.widget.ImageView;
import com.squareup.picasso.Picasso;
import java.io.File;
import android.content.Context;
import android.net.Uri;
import android.widget.ImageView;
import com.squareup.picasso.Picasso;
import java.io.File;
/**
* Created by qundui on 2017/4/22.
*/
public class PicassoUtils {
public static void loadImageByurl(String url, Context ctx, ImageView imageView) { Picasso.with(ctx).load(url).into(imageView);}public static void loadImageByRes(int res, Context ctx, ImageView imageView) { Picasso.with(ctx).load(res).into(imageView);}public static void loadImageByFile(Context ctx, ImageView iv, File file) { Picasso .with(ctx) .load(file) .into(iv);}public static void loadImageByURI(Context ctx, ImageView iv, int res) { Uri uri = resourceIdToUri(ctx, res); Picasso .with(ctx) .load(uri) .into(iv);}public static final String ANDROID_RESOURCE = "android.resource://";public static final String FOREWARD_SLASH = "/";private static Uri resourceIdToUri(Context context, int resourceId) { return Uri.parse(ANDROID_RESOURCE + context.getPackageName() + FOREWARD_SLASH + resourceId);}
}
package com.example.qundui.learndemo;
import android.net.Uri;
import com.squareup.picasso.Downloader;
import com.squareup.picasso.NetworkPolicy;
import java.io.IOException;
import okhttp3.Cache;
import okhttp3.CacheControl;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.ResponseBody;
/**
* Created by qundui on 2017/4/22.
*/
public class ImageDownLoader implements Downloader {
OkHttpClient client = null;
public ImageDownLoader(OkHttpClient client) {
this.client = client;
}
@Override
public Response load(Uri uri, int networkPolicy) throws IOException {
CacheControl cacheControl = null; if (networkPolicy != 0) { if (NetworkPolicy.isOfflineOnly(networkPolicy)) { cacheControl = CacheControl.FORCE_CACHE; } else { CacheControl.Builder builder = new CacheControl.Builder(); if (!NetworkPolicy.shouldReadFromDiskCache(networkPolicy)) { builder.noCache(); } if (!NetworkPolicy.shouldWriteToDiskCache(networkPolicy)) { builder.noStore(); } cacheControl = builder.build(); } } Request.Builder builder = new Request.Builder().url(uri.toString()); if (cacheControl != null) { builder.cacheControl(cacheControl); } okhttp3.Response response = client.newCall(builder.build()).execute(); int responseCode = response.code(); if (responseCode >= 300) { response.body().close(); throw new ResponseException(responseCode + " " + response.message(), networkPolicy, responseCode); } boolean fromCache = response.cacheResponse() != null; ResponseBody responseBody = response.body(); return new Response(responseBody.byteStream(), fromCache, responseBody.contentLength());}@Overridepublic void shutdown() { Cache cache = client.cache(); if (cache != null) { try { cache.close(); } catch (IOException ignored) { } }}
}
package com.example.qundui.learndemo;
import android.app.Application;
import android.net.wifi.WifiConfiguration;
import com.squareup.picasso.Picasso;
import java.util.Collections;
import okhttp3.OkHttpClient;
import okhttp3.Protocol;
/**
* Created by qundui on 2017/4/22.
*/
public class Myapp extends Application {
@Override
public void onCreate() {
super.onCreate();
OkHttpClient client = new OkHttpClient.Builder()
.protocols(Collections.singletonList(Protocol.HTTP_1_1))
.build();
Picasso.setSingletonInstance(new Picasso.Builder(this).
downloader(new ImageDownLoader(client)).loggingEnabled(true)
.build());
}
}
package com.example.qundui.learndemo;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import com.squareup.picasso.Picasso;
/**
* Created by qundui on 2017/4/22.
*/
public class Pictest extends Activity {
private ImageView iv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.pic_test);
iv= (ImageView) findViewById(R.id.iv);
}
public void getPic(View view){
String url=”https://bmc.huochexia.com/qundui-manager/userfiles/9a29fe156da64c66adf862f912f0eeaf/images/banner/2016/12/QQ图片20161219175344.png”;
// Picasso.with(this).setLoggingEnabled(true);
// Picasso.with(this).load(url).into(iv);
PicassoUtils.loadImageByurl(url,this,iv);
}
}
- 图片加载框架四大之一Picasso 加载 Https 图片的那些套路
- 图片加载框架-Picasso
- 图片加载框架Picasso
- Picasso 图片加载框架
- 图片加载框架-Picasso
- Picasso加载https的图片加载不出来的解决方案
- 图片加载框架Picasso的使用
- Picasso网络图片加载框架的使用
- 图片加载的框架 Imageloader Picasso Glide
- Picasso网络图片加载框架的使用
- 图片加载框架 --Picasso 的基本使用
- 图片加载框架Picasso解析
- 图片加载框架之Picasso
- Android图片加载框架Picasso
- 图片加载框架Picasso解析
- 图片加载框架之Picasso
- Android加载图片框架Picasso
- 使用picasso加载需要证书的https图片
- Python基础教程学习第七日:Numpy
- maven配置jdk1.8环境
- REST Service 开发
- 批处理是什么?该怎么建立批处理文件呢?
- IMWeb前端学习笔记——Day6
- 图片加载框架四大之一Picasso 加载 Https 图片的那些套路
- 0410-颜色控制属性
- hdu3068_最长回文串_Manacher(马拉车模板)
- 单调队列的实现与应用
- Oracle ORA-01033: ORACLE initialization or shutdown in progress 错误解决办法
- Keep In Line
- 把排序数组转换为高度最小的二叉搜索树
- ~位图(补充)~
- JAVA设计模式之工厂模式