2 android baiyuchuan android_baiyuchuan 于 2012.11.12 10:04 提问

android用户从服务器上查询并下载多张图片的思路或实现,应该使用哪种连接方式呢

android想实现一个用户从服务器上先查询,如图片名,然后自动下载多张相关图片的实现。应该使用哪种网络连接方式进行查询下载呢?

查询框期望是使用EditText,点击查询按钮进行查询。并且在输入时可以有下拉提示,如我输入“A”,下拉列表中自动弹出并提示以往记录或者“aa,AB.....”等信息.

2个回答

Sueyexin
Sueyexin   2012.11.12 11:22
已采纳

图像特征数据推荐存储到数据库里面
然后,根据用户在 edittext 的输入进行 select 查询。

得出的相关数据记录对应的使用 get 方法直接从服务器上面搞下来就是了,
如果懒的写下载的方法,推荐一个方法给你吧

public static Bitmap decodeFromUrl(String url)
  {
    Bitmap bitmap = null;
    try
    {
      URLConnection connection = new URL(url).openConnection();
      connection.setConnectTimeout(2000);
      connection.connect();

      bitmap = BitmapFactory.decodeStream(connection.getInputStream());
    }
    catch (Exception localException)
    {
    }

    return bitmap;
  }

然后把 bitmap 放在你需要显示的地方,这个肯定不困难了吧

更新:

至于多图片下载的问题
首先根据 select 出来的结果集,将 json 的总数据中图像的 url 放到一个数组中;
然后创建一个线程,专门用来下载前面待下载的数组,循环调用 decodeFromUrl
在完成一部分,或者全部完成之后,通过 handler 告知界面更新就ok喽
这样子界面和程序都不会卡着了~

Sueyexin
Sueyexin 呵呵,所以才要把获取图形的方法独立出来呀,根据 select 出来的结果集,查询一下 json 总数据,然后把需要下载的图像url放到一个数组里面,然后启一个线程,循环调用 decodeFromUrl,地址都在需要的数组里面,这样子就不会卡了。关于多图片下载的问题我已经更新在答案上了
5 年多之前 回复
android_baiyuchuan
android_baiyuchuan 嗯,非常感谢你的回答。不过我是一次下载很多张图片的,也就是说会有很多个URL,而且每张图片都会有自己的概述,到时候应该会通过JSON封装(概述+图片URL),这样一来要一张一张下载会不会很慢,或者说会导致应用很卡的呢?
5 年多之前 回复
iamkila
iamkila   2012.11.12 22:45

可用异步加载 图片先显示默认值 下载完某一张后update下 这样就不会卡顿了

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!