瀑布流

之前在面试的时候 被问过瀑布流的问题            貌似那个面试官是蘑菇街出来的

当时压根不知道瀑布流是什么东东 也就说了些自定义控件的思路

到这几天 想起来 也就去网上找了些瀑布流的demo


关于瀑布流的思路:

继承scroillView
把屏幕划分成n列 每列都是一个垂直的LinearLayout
记录每一列的高度  
记图片为一个单元
当要添加一个单元的 寻找 高度最低的列 添加到其下

实现分页显示:
规定每页显示的单元数量

在action_up中判断 getScrollY+GetHeight==最大列高? 来判断是否到达底部
到底 则再添加相应数量单元

回收图片问题
在action_up中判断 当图片在屏幕之外时进行回收 用一张公共图片来代替显示
不足: 当要加载新页面时 由于此时下方图片在屏幕之外 会先进行一次回收 然后才加载图片 不过不影响性能


demo在此:http://download.csdn.net/detail/d342784178/8756467

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android瀑布流是一种常用于展示图片、新闻、商品等多个数据的界面布局方式。它的特点是让数据以瀑布的形式在屏幕上卡片化展示,每个卡片的高度可以不同,整体呈现出瀑布流的效果。 使用Android瀑布流可以在有限的屏幕空间内展示更多的内容,并且能够更好地适应不同屏幕尺寸和分辨率。它能够自动适应数据的长度和高度,使得用户观看时可以自由滑动和查看更多的内容,提升了用户的体验。 在Android中实现瀑布流布局可以采用RecyclerView或GridView等布局控件,并结合Adapter来添加数据和设置布局样式。通常情况下,我们需要自定义Adapter来实现特定的布局效果,比如设置不规则的卡片高度、加载图片、设置点击事件等。 瀑布流的实现方式有多种,常见的是通过计算每个卡片的高度来实现。在RecyclerView中,可以使用StaggeredGridLayoutManager来实现瀑布流布局,通过设置ItemDecoration来控制卡片之间的间距。 在实际开发中,需要考虑到瀑布流的性能问题,因为加载大量的图片可能会造成卡顿和内存溢出。可以采用图片加载库如Glide或Picasso来处理图片加载,并且可以使用分页加载的方式,只加载当前可见区域的数据,减少资源消耗。 总之,Android瀑布流是一种能够有效展示多个数据的布局方式,可以提升用户体验,但在开发过程中需要注意性能问题,并选择合适的第三方库来处理图片加载。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值