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;
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 = "yun_qi_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();

 }

}

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

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android
, okhttp
, get
下载图片
android okhttp get、android okhttp 使用、android okhttp3 使用、android okhttp的使用、okhttp get请求,以便于您获取更多的相关知识。

时间: 2024-09-30 17:16:35

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

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远程上传以及下载图片---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生成带圆角的Bitmap图片_Android

本文实例讲述了Android生成带圆角的Bitmap图片.分享给大家供大家参考.具体如下: 有时候我们在开发Android应用时,会遇到圆角图片的问题,那么,我们如何在Android中用代码来生成圆角Bitmap图片呢?下面这段代码也许能够帮到你. 该方法主要用到了drawRoundRect来画圆角矩形,然后通过drawBitmap来画图片. //生成圆角图片 public static Bitmap GetRoundedCornerBitmap(Bitmap bitmap) { try { B

Android通过Movie展示Gif格式图片_Android

本文实例为大家分享Android通过Movie展示Gif格式图片的相关代码,供大家参考,具体内容如下 public class CommonGifView extends View { private Resources mResources; private Movie mMovie; private long startTime = 0; private float widthRatio; private float heightRatio; public CommonGifView(Con

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实现网络多线程断点续传下载实例_Android

我们编写的是Andorid的HTTP协议多线程断点下载应用程序.直接使用单线程下载HTTP文件对我们来说是一件非常简单的事.那么,多线程断点需要什么功能? 1.多线程下载, 2.支持断点. 使用多线程的好处:使用多线程下载会提升文件下载的速度.那么多线程下载文件的过程是: (1)首先获得下载文件的长度,然后设置本地文件的长度. HttpURLConnection.getContentLength();//获取下载文件的长度 RandomAccessFile file = new RandomAc

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

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

最近较流行的效果 Android自定义View实现倾斜列表/图片_Android

先看看效果图: 实现思路:擦除图片相应的角,然后层叠图片,产生倾斜效果 代码实现: 1.定义属性 在values文件夹下的attrs文件添加以下代码 <resources> <declare-styleable name="TiltView"> <attr name="type" format="integer" /> </declare-styleable> </resources>