Android下载多个图片(传统Http请求方式)
来源:互联网 发布:nginx 实用技巧 编辑:程序博客网 时间:2024/05/24 01:49
今天要做一个图片下载方式,图片不算多,图片最多有5个左右。我想了好几个办法,
1、文件下载:可行,但是对于单一的图片下载来说,略复杂了些。
2、第三方图片下载:可行,但是需要去了解和学习第三方,所需的时间成本还有该第三方框架的利用率不足,jar包可能还不小。
3、循环子线程:可行(不推荐), 如果我要下载2个图片,将子线程加入for循环内,并最终呈现。
但有严重缺陷,线程延时,图片顺序不能做保证。如果是线程套线程的话,第一个子线程结束了,嵌套在该子线程f的or循环内的子线程还没结束,从而主线程获取不到子线 程 里获取的图片。
* 最终方法:其实也是最简单的方法,用一个子线程就可以搞定。 1、首先让后台给你提供一个接口 “ 获取所有需要拉取的图片的名称” 2、其次就是路径了。
下面贴上关键代码:
这里是我的子线程方法:
String[] picName;<span style="color:#009900;">//这是你通过接口获取的,图片名数组</span>
Bitmap[] bm=new Bitmap[picName.length];//<span style="color:#009900;">创建一个Bitmap[] 来接收图片资源</span>
private void ManyPic(final String[] picName) {new Thread(new Runnable() {@Overridepublic void run() {Message ms = handler.obtainMessage();try {if (ImageUtil.getBitmap(url, picName) != null) {bm = ImageUtil.getBitmap(url, picName);ms.what = BITMAP_SUCCESS;ms.obj = bm;ms.sendToTarget();} else {ms.what = BITMAP_ERROR;ms.obj = "下载失败";ms.sendToTarget();}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}).start();}
这里是多图片下载的关键地方:
参数path (例:Http://192.168.0.1/Image/)
参数picName (例: picName[0]=123456.jpg)
直接在这里根据我的图片名数组的长度,循环Http请求,并形成一个Bitmap[] 再返回。
<span style="color:#3366ff;">/** * 获取网络上需要下载的图片 * @path=固定的路径 * @picName=提前获取的图片名的数组 * */</span>public static Bitmap[] getBitmap(String path,String[] picName) throws IOException{Bitmap[] b=new Bitmap[picName.length];<span style="color:#009900;">//根据图片数组长度来,循环获取我们需要的图片数组</span>for (int i = 0; i < picName.length; i++) {URL url = new URL(path+picName[i]); HttpURLConnection conn = (HttpURLConnection)url.openConnection();
<span></span><span style="color:#009900;">//这里可以调节延迟时间</span> conn.setConnectTimeout(5000); conn.setRequestMethod("GET"); if(conn.getResponseCode() == 200){ InputStream inputStream = conn.getInputStream(); Bitmap bitmap = BitmapFactory.decodeStream(inputStream); b[i]=bitmap; }} return b; }
2 0
- Android下载多个图片(传统Http请求方式)
- Android HTTP请求下载图片并缓存
- Android Http下载请求
- Android传统HTTP请求get----post方式提交数据(包含乱码问题)
- http 网络请求 下载图片
- android http 请求方式
- android Http请求方式
- 系统请求方式下载图片
- Android HttpURLConnection获取网络下载图片POST请求方式
- Android http 下载图片
- Android HTTP请求方式:HttpClient
- Android HTTP请求方式:HttpURLConnection
- Android HTTP请求方式:HttpClient
- Android的HTTP请求方式
- http get 请求下载图片至本地
- android用http下载图片
- Android--使用Http向服务器发送请求并取得返回结果,下载图片
- Android--使用Http向服务器发送请求并取得返回结果,下载图片
- Linux 目录结构
- 把文件数组排序
- I-jetty 移植及Https 配置使用
- LintCode:删除列表中的元素
- CRF
- Android下载多个图片(传统Http请求方式)
- android通知栏—非常详细
- cout 输出指定位数的浮点数
- jsp页面展示json数据
- JS中的NaN、undefined、null
- SSRF libcurl protocol wrappers利用分析
- 高性能的智能日志
- 淘宝大秒系统设计详解
- Tricks(七)——list of lists 行和、列和的计算