android-imageview – 在Android中获取图像视图的ID的问题?

android-imageview – 在Android中获取图像视图的ID的问题?,第1张

概述我正在实现一个显示从.net服务器获取图像和消息的应用程序.为此,我使用for循环动态地添加了LinearLayout和TextView和 ImageView. 起初我收到消息,我将它们添加到TextView中,并在ImageView中放置虚拟图像: for(int i = 0; i < messages.size(); i++) { FrameLayout f1 = new Fram 我正在实现一个显示从.net服务器获取的图像和消息的应用程序.为此,我使用for循环动态地添加了linearLayout和TextVIEw和 ImageVIEw.
起初我收到消息,我将它们添加到TextVIEw中,并在ImageVIEw中放置虚拟图像:

for(int i = 0; i < messages.size(); i++) {     FrameLayout f1 = new FrameLayout(this);    linearLayout l1 = new linearLayout(this);    linearLayout l2 = new linearLayout(this);    im = new ImageVIEw(this);    TextVIEw tv = new TextVIEw(this);    tv.setText(messages.get(i).getmessage());    im.setimageResource(R.drawable.person);    l1.addVIEw(tv);    l2.addVIEw(im);    f1.addVIEw(l1);    f1.addVIEw(l2);    ((linearLayout)findVIEwByID(R.ID.linearlayoutMessage)).addVIEw(f1);}

过了一段时间,我得到原始图像.我的目的是用原始图像替换虚拟图像.为了达到这个目的,我正在使用imagevIEw.getID(),不幸的是我得到了imagevIEw的最后一个ID.但我需要获得每个个人的imagevIEw ID.

用真实图像改变虚拟图像的最佳方法是什么?

解决方法 看起来您需要将每个imageVIEw ID存储在每条消息的地图中 – > imageVIEw如下:

Map<Message,Long> messageMapPing = new HashMap<Message,Long>();for(int i = 0; i < messages.size(); i++) {     FrameLayout f1 = new FrameLayout(this);    linearLayout l1 = new linearLayout(this);    linearLayout l2 = new linearLayout(this);    im = new ImageVIEw(this);    TextVIEw tv = new TextVIEw(this);    //add mapPing    messageMapPing.put(messages.get(i),im.getID());    tv.setText(messages.get(i).getmessage());    im.setimageResource(R.drawable.person);    l1.addVIEw(tv);    l2.addVIEw(im);    f1.addVIEw(l1);    f1.addVIEw(l2);    ((linearLayout)findVIEwByID(R.ID.linearlayoutMessage)).addVIEw(f1);}

然后,当需要将图像延迟加载到现有的imageVIEws时,您只需要通过消息映射查找imageVIEw ID引用:

(总猜猜你的代码看起来像什么)

for(int i = 0; i < messages.size(); i++){    Image image = queryServerForImage(messages.get(i).getimageID());    ImageVIEw imageVIEw = ((ImageVIEw)findVIEwByID(messageMapPing.get(messages.get(i))));    //some conversion & seteup may be needed to get image into proper format    imageVIEw.setimageBitmap(image);}

您可以使用异步任务执行类似的 *** 作.您可以使用关联的资源ID跨越消息ImageVIEw创建循环中的每一个,并让每个asyc任务更新网络响应中的ui.

总结

以上是内存溢出为你收集整理的android-imageview – 在Android中获取图像视图的ID的问题?全部内容,希望文章能够帮你解决android-imageview – 在Android中获取图像视图的ID的问题?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1124288.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存