怎样在android GridView实现动态加载图片啊?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样在android GridView实现动态加载图片啊?相关的知识,希望对你有一定的参考价值。

实现在GridView中动态加载图片,一张一张的加载到Gridview中,请问药实现该功能要怎样实现??

你可以用ArrayList当数据源,每次加一张图片都放到ArrayList里面去,再通过你GridView的设配器通知更新:imgAdapter.notifyDataSetChanged(); 参考技术A GridView自定义一个adapter,然后在每个adapter的layout布局中获得ImageView,设置ImageView的backGroundResource

GridView(网格视图)是按照行列的方式来显示内容的,一般用于显示图片,图片等内容,比如实现九宫格图,用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 将自行处理请求更多项目。还要确保您没有将GridViewItemsPanel 更改为不支持UI 虚拟化的ItemsPanel - 例如。 VariableSizedWrapGrid.

还要确保您不会因为任何其他原因而简单地发生内存泄漏。通常,UI 虚拟化(默认)的 200 项网格不应该使用那么多内存,除非您的拇指实际上比您需要显示它们的分辨率大得多。检查this question 以了解调试泄漏的方法。

【讨论】:

谢谢,伙计。你知道我在哪里可以找到有关如何以较小尺寸加载图像的信息吗? VariableSizedWrapGrid 中使用ISupportIncrementalLoading 的任何解决方法? @adheus 检查 WinRT XAML 工具包中的 Tim Heuer method 以获得有关如何以特定分辨率加载图像的灵感,但如果您可以控制图像的来源 - 最好简单地创建/请求特定分辨率的图像。 @Xyroid 我以前实际上从未使用过ISupportIncrementalLoading,尽管我在回答here 时使用过FileInformationFactory.GetVirtualizedFilesVector。您在解决方法中需要什么具体的东西? VariableSizedWrapGrid 没有虚拟化,所以即使它确实与数据虚拟化一起使用,它也会泄漏数据。 @Xyroid 我建议不要使用VariableSizedWrapGrid 处理超过几到几十个项目。如果你真的需要 - 你可能应该考虑在项目滚动到视图时延迟加载数据(例如图像)和某种循环缓冲区来卸载最近未请求或不在视图中的数据.然后还使用附加属性将GridViewItemVariableSizedWrapGrid.RowSpan/ColumnSpan 属性绑定到数据项或尝试从ItemTemplate 遍历可视化树以设置父GridViewItem 的跨度。所有骇人听闻的东西。【参考方案2】:

您可以自己创建拇指:仅创建较小的图像 - 仅此而已。

   new BitmapImage(new Uri(Path)) DecodePixelWidth = 200

【讨论】:

以上是关于怎样在android GridView实现动态加载图片啊?的主要内容,如果未能解决你的问题,请参考以下文章

如何实现android中横向滚动的gridView

Android动态设定GridView的高度,固定column,实现高度自适应

listview在上gridview在下,如何能够一起滚动?

android开发游记:ItemTouchHelper 使用RecyclerView打造可拖拽的GridView

android ListView 嵌套GridView 子Item点击加载Activity

Flutter PageView组件怎样让子组件不会重复加载