android异步下载多个文件,android:利用异步请求同时下载多张图片(07)

android:利用异步同时下载多张图片(07)

android:利用异步同时下载多张图片,doInBackground()方法下载后返回的时候返回一个list

//布局文件就是四个ImageView

//第一种返回的是一个数组的集合,再转换成位图

//第二种返回的直接是位图集合

public class MainActivity extends Activity {

private ImageView image_1;

private ImageView image_2;

private ImageView image_3;

private ImageView image_4;

private String urlString1 = "http://www.touxiang.cn/uploads/20130608/08-023618_517.jpg";

private String urlString2 = "http://www.touxiang.cn/uploads/20140216/16-075941_383-lp.jpg";

private String urlString3 = "http://www.touxiang.cn/uploads/20140216/16-082440_368-lp.jpg";

private String urlString4 = "http://www.touxiang.cn/uploads/20140216/16-063601_933-lp.jpg";

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

this.image_1 = (ImageView) this.findViewById(R.id.image_1);

this.image_2 = (ImageView) this.findViewById(R.id.image_2);

this.image_3 = (ImageView) this.findViewById(R.id.image_3);

this.image_4 = (ImageView) this.findViewById(R.id.image_4);

/* 也可以定义为数组String[] url = { "http://litchiapi.jstv.com/Attachs/Top/11949/e650e0201de541d2ba91dca202b0fcfe.jpg",

"http://192.168.10.85:8080/xml/login.jpeg",

"http://192.168.10.85:8080/xml/ss.jpg",

"http://g.hiphotos.baidu.com/image/h%3D200/sign=bff104116009c93d18f209f7af3cf8bb/024f78f0f736afc30fd7717ab419ebc4b64512d1.jpg" };

//"http://192.168.10.85:8080/xml/ss.jpg"本地服务器的图片

*/

new myTask().execute(urlString1,urlString2,urlString3,urlString4);

}

class myTask extends AsyncTask> {

@Override

protected List doInBackground(String... params) {

List list = new ArrayList();

HttpClient client = new DefaultHttpClient();

for (int i = 0; i 

HttpGet get = new HttpGet(params[i]);

try {

HttpResponse response = client.execute(get);

if (response.getStatusLine().getStatusCode() == 200) {

list.add(EntityUtils.toByteArray(response.getEntity()));

}

} catch (ClientProtocolException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

return list;

}

@Override

protected void onPostExecute(List result) {

if (result != null) {

Bitmap bitmap_1 = BitmapFactory.decodeByteArray(result.get(0),

0, result.get(0).length);

image_1.setImageBitmap(bitmap_1);

Bitmap bitmap_2 = BitmapFactory.decodeByteArray(result.get(1),

0, result.get(1).length);

image_2.setImageBitmap(bitmap_2);

Bitmap bitmap_3 = BitmapFactory.decodeByteArray(result.get(2),

0, result.get(2).length);

image_3.setImageBitmap(bitmap_3);

Bitmap bitmap_4 = BitmapFactory.decodeByteArray(result.get(3),

0, result.get(3).length);

image_4.setImageBitmap(bitmap_4);

} else {

Toast.makeText(MainActivity.this, "网络错误!!", Toast.LENGTH_SHORT)

.show();

}

}

}

}

//第二种方法返回的直接是位图集合:如下:

protected List doInBackground(String... params) {

List list = new ArrayList();

for (int i = 0; i 

try {

HttpClient httpClient = new DefaultHttpClient();

HttpGet httpGet = new HttpGet(params[i]);

HttpResponse response = httpClient.execute(httpGet);

if (response.getStatusLine().getStatusCode() == 200) {

HttpEntity entity = response.getEntity();

byte[] data = EntityUtils.toByteArray(entity);

Bitmap bm = BitmapFactory.decodeByteArray(data, 0,

data.length);

list.add(bm);

}

} catch (Exception e) {

e.printStackTrace();

}

}

return list;

}

@Override

protected void onPostExecute(List result) {

super.onPostExecute(result);

if (result != null) {

imageView_1.setImageBitmap(result.get(0));

imageView_2.setImageBitmap(result.get(1));

imageView_3.setImageBitmap(result.get(2));

imageView_4.setImageBitmap(result.get(3));

} else {

Toast.makeText(context, "网络异常,加载数据失败!", Toast.LENGTH_LONG)

.show();

}

pDialog.dismiss();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值