package com.example.day02;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
public class Main2Activity extends AppCompatActivity {
private EditText input;
private Button query;
private ImageView image;
private final int UPDATE_Image=0;
private final int GET_Image_ERROR=1;
private Handler mHandler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what){
case UPDATE_Image:
image.setImageBitmap((Bitmap) msg.obj);
break;
case GET_Image_ERROR:
image.setImageBitmap((Bitmap) msg.obj);
// Toast.makeText(Main2Activity.this,msg.obj.toString(),Toast.LENGTH_SHORT).show();
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
//获取资源id
input =findViewById(R.id.input);
input.setText("http://b.zol-img.com.cn/desk/bizhi/image/3/960x600/1377661129604.jpg");
query =findViewById(R.id.query);
image =findViewById(R.id.image);
query.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new Thread(new Runnable() {
@Override
public void run() {
//切换到自线程中请求数据
requestData(input.getText().toString());
}
}).start();
}
});
}
private void requestData(String urlStr) {
try {
//请求地址
URL url = new URL(urlStr);
//连接
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
//请求方法
urlConnection.setRequestMethod("GET");
//连接超时方法
urlConnection.setConnectTimeout(5000);
//读取超时时间
urlConnection.setReadTimeout(5000);
//获取返回结果 状态码
int responseCode = urlConnection.getResponseCode();
if(responseCode==200){
Bitmap bitmap = BitmapFactory.decodeStream(urlConnection.getInputStream());
Message message = mHandler.obtainMessage(UPDATE_Image, bitmap);
mHandler.sendMessage(message);
}else{
mHandler.sendMessage(mHandler.obtainMessage(GET_Image_ERROR,"请求返回错误"+responseCode));
}
urlConnection.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
}
}