package zhangphil.demo;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ImageView;
import java.io.IOException;
import okhttp3.Call;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.Callback;
public class MainActivity extends AppCompatActivity {
private final String image_url = "http://avatar.csdn.net/9/7/A/1_zhangphil.jpg";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//在布局里面放一个ImageView,放网络请求后的图片
final ImageView image = (ImageView) findViewById(R.id.imageView);
//初始化OkHttpClient
final OkHttpClient client = new OkHttpClient();
//创建OkHttpClient针对某个url的数据请求
Request request = new Request.Builder().url(image_url).build();
Call call = client.newCall(request);
//请求加入队列
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
//此处处理请求失败的业务逻辑
}
@Override
public void onResponse(Call call, Response response) throws IOException {
//我写的这个例子是请求一个图片
//response的body是图片的byte字节
byte[] bytes = response.body().bytes();
//response.body().close();
//把byte字节组装成图片
final Bitmap bmp = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
//回调是运行在非ui主线程,
//数据请求成功后,在主线程中更新
runOnUiThread(new Runnable() {
@Override
public void run() {
//网络图片请求成功,更新到主线程的ImageView
image.setImageBitmap(bmp);
}
});
}
});
}
}
Okhttp 加载图片
最新推荐文章于 2024-07-28 22:43:24 发布