怎样在android GridView实现动态加载图片啊?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样在android GridView实现动态加载图片啊?相关的知识,希望对你有一定的参考价值。
实现在GridView中动态加载图片,一张一张的加载到Gridview中,请问药实现该功能要怎样实现??
你可以用ArrayList当数据源,每次加一张图片都放到ArrayList里面去,再通过你GridView的设配器通知更新:imgAdapter.notifyDataSetChanged(); 参考技术A GridView自定义一个adapter,然后在每个adapter的layout布局中获得ImageView,设置ImageView的backGroundResourceGridView(网格视图)是按照行列的方式来显示内容的,一般用于显示图片,图片等内容,比如实现九宫格图,用GridView是首选,也是最简单的。 参考技术B 先抢到先,坐到位,呵呵 参考技术C 楼主呀,,,您太有才了。。。
如何在 WinRT 上实现延迟加载 GridView?
【中文标题】如何在 WinRT 上实现延迟加载 GridView?【英文标题】:How to implement a lazy load GridView on WinRT? 【发布时间】:2013-06-10 14:25:01 【问题描述】:我需要实现一个拇指网格视图。但是当我的应用点击 200 个拇指时,它开始出现内存问题(当然)。我需要实现延迟加载,但我不知道如何检测滚动查看器在 gridview 上的位置,因此我可以在它到达末尾时尝试加载更多图像。
这是我的 gridview 布局:
有人知道怎么做吗?
【问题讨论】:
【参考方案1】:在您的源集合中实现ISupportIncrementalLoading
以支持数据虚拟化,GridView
将自行处理请求更多项目。还要确保您没有将GridView
的ItemsPanel
更改为不支持UI 虚拟化的ItemsPanel
- 例如。 VariableSizedWrapGrid
.
还要确保您不会因为任何其他原因而简单地发生内存泄漏。通常,UI 虚拟化(默认)的 200 项网格不应该使用那么多内存,除非您的拇指实际上比您需要显示它们的分辨率大得多。检查this question 以了解调试泄漏的方法。
【讨论】:
谢谢,伙计。你知道我在哪里可以找到有关如何以较小尺寸加载图像的信息吗? 在VariableSizedWrapGrid
中使用ISupportIncrementalLoading
的任何解决方法?
@adheus 检查 WinRT XAML 工具包中的 Tim Heuer method 以获得有关如何以特定分辨率加载图像的灵感,但如果您可以控制图像的来源 - 最好简单地创建/请求特定分辨率的图像。
@Xyroid 我以前实际上从未使用过ISupportIncrementalLoading
,尽管我在回答here 时使用过FileInformationFactory.GetVirtualizedFilesVector
。您在解决方法中需要什么具体的东西? VariableSizedWrapGrid
没有虚拟化,所以即使它确实与数据虚拟化一起使用,它也会泄漏数据。
@Xyroid 我建议不要使用VariableSizedWrapGrid
处理超过几到几十个项目。如果你真的需要 - 你可能应该考虑在项目滚动到视图时延迟加载数据(例如图像)和某种循环缓冲区来卸载最近未请求或不在视图中的数据.然后还使用附加属性将GridViewItem
的VariableSizedWrapGrid.RowSpan/ColumnSpan
属性绑定到数据项或尝试从ItemTemplate
遍历可视化树以设置父GridViewItem 的跨度。所有骇人听闻的东西。【参考方案2】:
您可以自己创建拇指:仅创建较小的图像 - 仅此而已。
new BitmapImage(new Uri(Path)) DecodePixelWidth = 200
【讨论】:
以上是关于怎样在android GridView实现动态加载图片啊?的主要内容,如果未能解决你的问题,请参考以下文章
Android动态设定GridView的高度,固定column,实现高度自适应
listview在上gridview在下,如何能够一起滚动?
android开发游记:ItemTouchHelper 使用RecyclerView打造可拖拽的GridView