您的位置:首页 > 理论基础 > 计算机网络

利用线程和异步线程AsyncTask获取网络图片

2015-01-15 20:44 316 查看
/*利用线程网络取图片*/
public  void getNetBitMap(final String urlPath){
new Thread(){
@Override
public void run() {
URL url;
try {
url=new URL(urlPath);
HttpURLConnection connection= (HttpURLConnection)url.openConnection();
InputStream inputStream=connection.getInputStream();
Bitmap bitmap= BitmapFactory.decodeStream(inputStream);

Message message=Message.obtain();
message.obj=bitmap;
mHandler.sendMessage(message);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
}
private Handler mHandler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
Bitmap bitmap= (Bitmap) msg.obj;
bitMapImg.setImageBitmap(bitmap);
}
};

利用AsyncTask异步获取图片

/*从网络获取图片*/
public Bitmap getMAP(String urlPath1){
Bitmap bitmap=null;
URL url;
try {
url=new URL(urlPath1);
HttpURLConnection connection= (HttpURLConnection)url.openConnection();
InputStream inputStream=connection.getInputStream();
bitmap= BitmapFactory.decodeStream(inputStream);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return bitmap;
}
/*利用AsyncTask从网络取数据*/
public void getTaskMap(String urlLuJing){
Log.e("getTaskMap>>>>","执行异步网络取图片");

new AsyncTask<String,Void,Bitmap>(){
@Override
protected Bitmap doInBackground(String... strings) {
String path=strings[0];
Bitmap bitmap= getMAP(path);
return bitmap;
}

@Override
protected void onPostExecute(Bitmap bitmap) {
super.onPostExecute(bitmap);
bitMapImg1.setImageBitmap(bitmap);
}
}.execute(urlLuJing);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐