王学岗OKHttp下载图片

界面比较简单,只有一个
package com.example.administrator.okhttptest;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;

import java.io.IOException;

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

public class MainActivity extends AppCompatActivity {

private ImageView iv_image;
private String url = "http://p6.qhmsg.com/dr/220__/t0104d229c7f23d5177.jpg";


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    iv_image = (ImageView) findViewById(R.id.iv_image);
    iv_image.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            loadView(url);
        }
    });
}

private void loadView(String url) {
    OkHttpClient mOkHttpClient = new OkHttpClient();
    try {
    //提交请求
        Request request = new Request.Builder().url(url).build();
        Call call = mOkHttpClient.newCall(request);
        call.enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                Log.i("zhang_xin", "call1   :" + call.toString());
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                Log.i("zhang_xin", "call2:" + call.toString());
                Log.i("zhang_xin", "response:" + response.body().byteStream());
                final Bitmap bitmap = BitmapFactory.decodeStream(response.body().byteStream());
              //在主线程修改UI
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        iv_image.setImageBitmap(bitmap);
                    }
                });

            }
        });
    } catch (Exception e) {
        e.printStackTrace();
    }
}

}

你可能感兴趣的:(android)