作者:寒江大哥_599 | 来源:互联网 | 2023-08-25 19:12
Android实现网络图片的查看有好几种方法,但这本身是一种很耗时的操作,可以通过直接获取和操作线程的方法,自己学习使用了BitmapFactory.decodeStream()在代码中自己写了注释,
Android实现网络图片的查看有好几种方法,但这本身是一种很耗时的操作,可以通过直接获取和操作线程的方法,自己学习使用了BitmapFactory.decodeStream()在代码中自己写了注释,大致分为以下几步:
①设置URL对象和连接
②设置一下在连接和读取过程中的超时时间防止长时间无响应的等待
③连接成功后根据数据流创建一个Bitmap的位图对象,最后返回Bitmap类型
④通过ImageView显示图片即可
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
icon = (ImageView) findViewById(R.id.iv_ivicon);
address = (EditText) findViewById(R.id.et_address);
Button submit = (Button) findViewById(R.id.btn_submit);
submit.setOnClickListener(this);
}
@Override
public void onClick(View v) {
String uri = address.getText().toString();
Bitmap bitmap = getImageFromNet(uri);
icon.setImageBitmap(bitmap);//
}
private Bitmap getImageFromNet(String btp) {
HttpURLConnection cOnn= null;
try {
URL myUri = new URL(btp); // 创建URL对象
// 创建链接
cOnn= (HttpURLConnection) myUri.openConnection();
conn.setConnectTimeout(10000);// 设置链接超时
conn.setReadTimeout(5000);
conn.setRequestMethod("GET");// 设置请求方法为get
conn.connect();// 开始连接
int respOnseCode= conn.getResponseCode();
if (respOnseCode== 200) {
InputStream is = conn.getInputStream();
// 根据流数据创建 一个Bitmap位图对象
Bitmap bitmap = BitmapFactory.decodeStream(is);
return bitmap;
// 访问成功
} else {
Log.i(TAG, "访问失败:respOnseCode=" + responseCode);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (conn != null) {
conn.disconnect();
}
}
return null;
}
结果截图很简单: