Android使用okHttp(get方式)下载图片

一、首先下载Jar包

https://github.com/square/okhttp

如果使用android studio只需要加入依赖compile 'com.squareup.okhttp3:okhttp:3.2.0'

二、下载一张图片并显示
使用的是hanlder的方式

package com.liunan.okhttpdemo2; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Handler; import android.os.Message; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.ImageView; import android.widget.Toast; import java.io.IOException; import java.io.InputStream; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; import okhttp3.ResponseBody; public class MainActivity extends AppCompatActivity { private static final int ERROR = 1; private static final int SUCCESS = 2 ; private String url = "http://192.168.1.102:8080/img/a.jpg"; private ImageView mIv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { switch (msg.what){ case SUCCESS: mIv.setImageBitmap((Bitmap) msg.obj); break; case ERROR: Toast.makeText(MainActivity.this, "请求超时", Toast.LENGTH_SHORT).show(); break; } } }; /** * 初始化 组件 */ private void initView() { mIv = (ImageView) findViewById(R.id.main_iv); } /** * 点击获取图片 */ public void getPic(View v){ new Thread(){ @Override public void run() { //获取okHttp对象get请求, try { OkHttpClient client = new OkHttpClient(); //获取请求对象 Request request = new Request.Builder().url(url).build(); //获取响应体 ResponseBody body = client.newCall(request).execute().body(); //获取流 InputStream in = body.byteStream(); //转化为bitmap Bitmap bitmap = BitmapFactory.decodeStream(in); //使用Hanlder发送消息 Message msg = Message.obtain(); msg.what = SUCCESS; msg.obj = bitmap; handler.sendMessage(msg); } catch (IOException e) { e.printStackTrace(); //失败 Message msg = Message.obtain(); msg.what = ERROR; handler.sendMessage(msg); } } }.start(); } }

也可以把网络请求写为一个工具类,

package com.liunan.okhttpdemo2; import java.io.IOException; import java.io.InputStream; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; /** * Created by 刘楠 on 2016-03-27. */ public class OkHttpUtils { OkHttpClient client = new OkHttpClient(); /** * 获取流 * @param url 请求地址 * @return 输入流 */ public InputStream getInpuStream(String url) throws IOException { //设置 请求 Request request = new Request.Builder() .url(url).build(); //获取行响应 InputStream in = client.newCall(request).execute().body().byteStream(); return in; } /** * 返回字符串 * @param url * @return 返回字符串 * @throws IOException */ public String getString(String url) throws IOException { //设置 请求 Request request = new Request.Builder() .url(url).build(); //获取行响应 Response response = client.newCall(request).execute(); return response.body().string(); } }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

时间: 2024-10-25 07:34:15

Android使用okHttp(get方式)下载图片的相关文章

Android使用okHttp(get方式)下载图片_Android

一.首先下载Jar包 https://github.com/square/okhttp  如果使用android studio只需要加入依赖compile 'com.squareup.okhttp3:okhttp:3.2.0'   二.下载一张图片并显示使用的是hanlder的方式  package com.liunan.okhttpdemo2; import android.graphics.Bitmap; import android.graphics.BitmapFactory; impo

在Android远程上传以及下载图片---XFire框架

http://blog.csdn.net/haha_mingg/article/details/6347588   有时我们可以看到,图片往往被提交到服务器端,这里我通过XFire框架来实现远程上传以及下载图片的功能. 首先我们来看看从服务器端下载图片的功能:   我用的是KSOAP框架,我之前的文章有讲述过.在这里不要多说,贴上代码.   首先我们看看Acitivity中的代码:  [java] view plaincopyprint? package com.net.connect.app;

Android进阶篇-上传/下载图片

/** * 上传图片到服务器 * @param uploadFile 要上传的文件目录 * @param actionUrl 上传的地址 * @return String */ public static HashMap<String, Object> uploadFile(String actionUrl,Drawable drawable){ Log.info(TAG, "urlPath= " + actionUrl); String end ="\r\n&q

Android使用okHttp(get方式)登录_Android

本文实例为大家分享了Android使用get方式登录的相关代码,供大家参考,具体内容如下 工具类  package com.liunan.okhttpdemo3post.Utils; import java.io.IOException; import okhttp3.MediaType; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.RequestBody; import okhttp3.Response

Android带进度条的下载图片示例(AsyncTask异步任务)

为什么要用异步任务? 在Android中只有在主线程才能对ui进行更新操作,而其它线程不能直接对ui进行操作 android本身是一个多线程的操作系统,我们不能把所有的操作都放在主线程中操作 ,比如一些耗时操作.如果放在主线程中 会造成阻塞 而当阻塞事件过长时 系统会抛出anr异常.所以我们要使用异步任务.android为我们提供了一个封装好的组件asynctask. AsyncTask可以在子线程中更新ui,封装简化了异步操作.适用于简单的异步处理.如果多个后台任务时就要使用Handler了

Android使用okHttp(get方式)登录

本文实例为大家分享了Android使用get方式登录的相关代码,供大家参考,具体内容如下 工具类 package com.liunan.okhttpdemo3post.Utils; import java.io.IOException; import okhttp3.MediaType; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.RequestBody; import okhttp3.Response;

android-Android中如何使用ImageLoader下载图片到SD卡

问题描述 Android中如何使用ImageLoader下载图片到SD卡 Android中可以使用ImageLoader将图片下载到手机本地的SD卡吗 有没有别的好的关于图片下载的框架 解决方案 最通用的就是Universal-Image-Loader http://blog.csdn.net/shineflowers/article/details/44650425 参考其中"加载其他来源的图片" 解决方案二: 用Universal-Image-Loader吧,方便简单效率高,配置一

Android imageloader异步方式显示图片的

问题描述 Android imageloader异步方式显示图片的 Android imageloader异步方式显示图片的怎么样在图片读取完成之后返回,需要怎么写ImageLoadingListener 解决方案 Universal-Image-Loader 多线程下载图片,图片可以来源于网络,文件系统,项目文件夹assets中以及drawable中等 支持随意的配置ImageLoader,例如线程池,图片下载器,内存缓存策略,硬盘缓存策略,图片显示选项以及其他的一些配置 支持图片的内存缓存,

Android异步下载图片并且缓存图片到本地

http://lishuaishuai.iteye.com/blog/1806667 在Android开发中我们经常有这样的需求,从服务器上下载xml或者JSON类型的数据,其中包括一些图片资源,本demo模拟了这个需求,从网络上加载XML资源,其中包括图片,我们要做的解析XML里面的数据,并且把图片缓存到本地一个cache目录里面,并且用一个自定义的Adapter去填充到LIstView,demo运行效果见下图: 通过这个demo,要学会有一下几点 1.怎么解析一个XML 2.demo中用到的