packagecom.liunan.okhttpdemo2;importandroid.graphics.Bitmap;importandroid.graphics.BitmapFactory;importandroid.os.Handler;importandroid.os.Message;importandroid.support.v7.app.AppCompatActivity;importandroid.os.Bundle;importandroid.view.View;importandroid.widget.ImageView;importandroid.widget.Toast;importjava.io.IOException;importjava.io.InputStream;importokhttp3.OkHttpClient;importokhttp3.Request;importokhttp3.Response;importokhttp3.ResponseBody;public class MainActivity extendsAppCompatActivity {private static final int ERROR = 1;private static final int SUCCESS = 2;private String url = "http://192.168.1.102:8080/img/a.jpg";privateImageView mIv;
@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}private Handler handler = newHandler(){
@Overridepublic voidhandleMessage(Message msg) {switch(msg.what){caseSUCCESS:
mIv.setImageBitmap((Bitmap) msg.obj);break;caseERROR:
Toast.makeText(MainActivity.this, "请求超时", Toast.LENGTH_SHORT).show();break;
}
}
};/*** 初始化 组件*/
private voidinitView() {
mIv=(ImageView) findViewById(R.id.main_iv);
}/*** 点击获取图片*/
public voidgetPic(View v){newThread(){
@Overridepublic voidrun() {//获取okHttp对象get请求,
try{
OkHttpClient client= newOkHttpClient();//获取请求对象
Request request = newRequest.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();
}
}