1.在build.gradle文件中添加依赖
compile 'com.squareup.okhttp:okhttp:2.0.0'
2.编写布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/btn_down"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="点击下载图片"/>
<ImageView
android:id="@+id/iv_flower"
android:layout_width="380dp"
android:layout_height="450dp"
android:layout_gravity="center"/>
</LinearLayout>
3.MainActivity如下
private ImageView ivFlower;
private Button btnDown;
String imgUrl = "";//图片网址
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ivFlower=(ImageView)findViewById(R.id.iv_flower);
btnDown=(Button)findViewById(R.id.btn_down);
btnDown.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new DownloadAsyncTask().execute();
}
});
}
class DownloadAsyncTask extends AsyncTask<String,Void,Bitmap>{
Bitmap bitmap = null;
@Override
protected Bitmap doInBackground(String... strings) {
OkHttpClient okHttpClient = new OkHttpClient(); //建立客户端
try {
Request request = new Request.Builder().url(imgUrl).build(); //封装请求
ResponseBody responseBody = okHttpClient.newCall(request).execute().body(); //执行请求等到响应体
InputStream inputStream = responseBody.byteStream();
bitmap = BitmapFactory.decodeStream(inputStream);
} catch (Exception e) {
e.printStackTrace();
}
return bitmap;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected void onPostExecute(Bitmap bitmap) {
ivFlower.setImageBitmap(bitmap);
}
}