
描述:
在上传图片时 怎么实现上传进度 在 图片上动态更新
做了个聊天窗口 遇到个问题
说明:
聊天记录的 xml (即图片显示的布局文件) 是在adapter中加载的
头部、底部菜单都是 聊天窗口的xml (外层布局文件)
问题点:
1、在上传图片时 上传的进度 怎么从activity传递到 adapter中 并更新 (即 怎么获取ProgressBar控件实例)
2、每条记录都有ProgressBar控件 存在多条记录时如何区分不同记录中 ProgressBar 的显示情况
------解决方案--------------------
这个不难,用HashMap<Id,ProgressBar> map = new HashMap<Id,ProgressBar>();
用map存储每个下载的进度条。
------解决方案--------------------
在 Activity 中维护一个 全局变量Map 集合, Key 是 图片名称, Value 是进度值, 当在线程中上传文件, 上传成功后, 就使用 Handler 发送消息, 将进度值放到 Obj 或者 arg 中, 传到 Activity中, 放到Map集合中 , 这个 Map 集合 直接可以在 Adapter 中调用;
------解决方案--------------------
1,2楼的方法好像只是解决了每个进度条的显示,但是怎么动态变化进度条呢?所以还需要一个线程来定时更新进度,不能在子线程了直接更新UI,所以子线程发送消息到UI,让UI自己更新。
------解决方案--------------------
重写adapter的的getView()方法,在getView()中获取ProgressBar。