Android 实现瀑布流的两种思路

瀑布流怎么样我就不多介绍了。下面说说我想到的两个方法。
方法一,控件的叠加:
ScrollView+LinearLayout。在ScrollView里面加一个水平方向的LinearLayout,在水平Layout里面加几个竖直方向的LinearLayout,然后根据滑动情况去加载和回收Bitmap,甚至可以回收ImageView(回收Bitmap的同时remove掉ImageView,加载Bitmap的同时addView,需要把握好View的位置),思路较好实现。

 

方法二,自定义ViewGroup:
加载图片时,记住图片信息(宽,高,url等),并计算出图片应该摆放的位置,在ViewGroup添加ImageView用于展示图片,这时实现ViewGroup的onLayout方法,在onLayout方法里面根据计算的图片位置信息来调用imageView.layout()方法。图片排列好后,需要自己去处理滑动,在Ontouch事件里面去使用ScrollBy/ScrollTo来实现滑动的效果,同时可以在ACTION_UP里面去处理滑动回弹fling的效果。这里需要注意的是ViewGroup默认不去拦截Touch事件。这里需要重写onInterceptTouchEvent方法,让其返回true来拦截Touch事件。

转载于:https://www.cnblogs.com/ProtectedDream/p/6412658.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Android实现瀑布流的效果,可以使用RecyclerView和Adapter来实现。首先,需要创建一个布局文件fragment_friend.xml,其中包含一个LinearLayout和一个RecyclerView。LinearLayout用于包裹RecyclerView,并设置垂直方向的布局。RecyclerView用于展示瀑布流的内容,需要设置宽度为match_parent,高度为wrap_content,并禁用滚动条和过度滚动效果。\[1\] 接下来,需要创建一个item_friend.xml布局文件,用于定义每个瀑布流项的样式。可以在LinearLayout中添加一个ImageView,设置宽度为match_parent,高度为wrap_content,并设置适当的内边距。\[2\] 在代码中,需要创建一个适配器FriendAdapter.java,用于将数据绑定到RecyclerView上。可以继承RecyclerView.Adapter,并实现必要的方法。在适配器中,可以根据需要加载图片或其他内容,并将其显示在ImageView上。\[3\] 最后,在friendFragment.java文件中,需要实现必要的功能,如加载数据、设置适配器等。可以使用LayoutManager来设置RecyclerView的布局管理器,以实现瀑布流的效果。 通过以上步骤,就可以在Android实现瀑布流的效果了。 #### 引用[.reference_title] - *1* *2* *3* [Android开发:RecyclerView和Adapter实现瀑布流效果](https://blog.csdn.net/m0_47114547/article/details/123818917)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值