今天研究了一下瀑布流,来说一下我实现它的方法。
看一下效果图:
基本的思路是重写了 ScrollView,让它包含一个LinearLayout,然后你要实现几列的就在里面添加几个LinearLayout,然后在循环在那几个LinearLayout里添加图片(也可以是别的view等)。
想看看重写ScrollView的LazyScrollView类
在LazyScrollView类中定义了滑动的接口
/**
* 定义接口
*
* @author lilongchun_hz
*
*/
public interface OnScrollListener {
void onBottom();
void onTop();
void onScroller();
}
private OnScrollListener onScrollListener;
public void setOnScrollListener(OnScrollListener onScrollListener) {
this.onScrollListener = onScrollListener;
}
然后在类中实现onTouchListener,在onTouchListener中实现滑动时,调用OnScrollListener
// 屏幕touch点击事件
OnTouchListener onTouchListener = new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
System.out.println("down");
break;
case MotionEvent.ACTION_UP:
System.out.println("up");
if(view != null && onScrollListener !=null){
handler.sendMessageDelayed(handler.obtainMessage(1), 200);
}
break;
default:
break;
}
return false;
}
};
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case 1:
// 滑动到底部
if (view.getMeasuredHeight() <= (getScrollY() + getMeasuredHeight())) {
if (onScrollListener != null) {
onScrollListener.onBottom();
}
} else if (getScrollY() == 0) { // 滑动到顶部
if (onScrollListener != null) {
onScrollListener.onTop();
}
} else {// 滑动中
if (onScrollListener != null) {
onScrollListener.onScroller();
}
}
break;
default:
break;
}
}
};
然后就是在MainActivity中添加LinearLayout
for (int i = 0; i < COLUMN_COUNT; i++) { // 生成三列的LinearLayout
LinearLayout itemLayout = new LinearLayout(this);
LinearLayout.LayoutParams itemParam = new LinearLayout.LayoutParams(
itemWidth, LayoutParams.WRAP_CONTENT);
itemLayout.setPadding(2, 2, 2, 2);
itemLayout.setOrientation(LinearLayout.VERTICAL);
itemLayout.setLayoutParams(itemParam);
waterfall_items.add(itemLayout);
waterfall_container.addView(itemLayout);
}
其余的就是添加ImageView了,这块就不讲了,其实都差不多。有需要的朋友可以下载源码看。
- 大小: 115.3 KB
- 大小: 74 KB
分享到:
相关推荐
总之,Android瀑布流效果的实现涉及布局管理、数据适配、动态计算和加载策略等多个方面,开发者需要对Android UI机制有深入理解。通过研究WaterfallDemo_2项目,可以系统地学习和掌握这一技术。
这个"Android瀑布流DEMO"提供了实现这种布局的示例代码,可以帮助开发者更好地理解和应用瀑布流设计。 首先,我们要了解瀑布流的核心组件——`RecyclerView`。它是Android SDK中的一个视图组件,用于高效地显示大量...
瀑布流布局在Android应用开发中是一种常见的展示大量图片或内容的方式,它以其独特的视觉效果,类似于瀑布连续下落的形式,让信息呈现更有层次感。在这个名为"Android 瀑布流照片墙"的项目中,开发者使用Android ...
综上所述,实现Android瀑布流容器并支持多重效果展示涉及到了Android UI布局的深度定制,包括自定义ViewGroup、测量与布局逻辑以及动画和交互设计。开发者需要具备扎实的Android基础知识,同时了解如何利用现有库和...
本资源包包含了多个关于Android瀑布流的示例代码,涵盖了从基础到进阶的各种实现方式,帮助开发者深入理解和掌握瀑布流布局的实现。 1. **基本原理** 瀑布流布局的核心是通过计算每一列的高度来确定内容的排列。...
Android瀑布流是一种常见的移动应用界面布局方式,尤其在展示大量图片或者信息流的应用中非常常见,如社交媒体、电商应用等。这种布局模仿了瀑布一泻千里的效果,内容逐个向下排列,每列的高度根据内容自适应,形成...
综上所述,"Android瀑布流demo"项目涵盖了Android自定义布局、数据适配、图片加载、滚动监听、无限滚动等多个技术点,通过学习和实践这个demo,开发者可以掌握构建高效、美观的瀑布流界面的技能。
2. `Android+瀑布流+Demo.rar`:这是一个Android瀑布流的演示项目。解压后,里面可能包含了一个完整的Android Studio工程,包括必要的XML布局文件、Java或Kotlin源代码、资源文件等,你可以通过运行这个项目来理解和...
实现Android瀑布流照片墙主要涉及以下几个技术点: 1. **布局管理器(LayoutManager)**:在Android的RecyclerView中,我们通常需要自定义一个LayoutManager来实现瀑布流布局。RecyclerView是Android系统提供的一个...
综上所述,实现Android瀑布流加载图片涉及多个环节,包括选择合适的图片加载库、构建瀑布流布局、处理点击事件以及性能优化。遵循这些步骤,你可以创建一个稳定、高效的瀑布流图片展示组件。记得在实际开发中,根据...
综上所述,实现“android瀑布流加载”涉及到了Android的布局管理、数据加载策略、图片处理、性能优化、屏幕适配、动画效果、错误处理和异步编程等多个技术点。通过熟练掌握这些知识点,我们可以构建出高性能、用户...
总之,实现一个Android瀑布流图片显示程序,涉及到的知识点包括:RecyclerView和自定义LayoutManager、图片异步加载库的使用、无限滚动加载以及数据与视图的绑定。通过实践和学习,你可以掌握这些技能,为自己的应用...
特别简单的android瀑布流开发例子,网上有个叫dodowaterfall的例子https://github.com/dodola/android_waterfall,感觉太麻烦了,所以弄了一个简单的
瀑布流布局在Android开发中是一种常见的布局方式,尤其在展示图片、商品等信息时非常流行。它的特点是元素根据屏幕宽度自适应地垂直排列,形成一种类似瀑布的效果,每一列的高度根据内容不同而不同。这种布局方式能...
【Android瀑布流】是一种常见的移动应用布局方式,尤其在电商、社交等应用中广泛使用,它的特点是内容元素按一定规则自上而下排列,每个元素的宽度固定,但高度不固定,形成一种类似瀑布倾泻的效果。这种布局方式...
这个压缩包“Android瀑布流照片墙实现,体验不规则排列的美感”提供了一个具体的实现示例,对于学习Android应用源码和论文撰写具有很高的参考价值。 首先,瀑布流布局的核心在于自适应和滚动的流畅性。在Android中...
Android瀑布流加载图片效果
瀑布流布局在Android应用开发中是一种常见的展示方式,尤其在电商、社交等应用中用于商品或图片的展示。它的特点是视图元素不均匀分布,每一列的高度根据内容自适应,形似瀑布倾泻而下。下面我们将深入探讨瀑布流...
瀑布流布局在Android开发中是一种常见的布局方式,它模拟了网页设计中的Pinterest风格,使得屏幕上的元素能够以多列、自适应高度的方式排列,形成一种类似瀑布倾泻的效果。在这个场景下,"标签"通常指的是用于分类...
标题中的“Android 瀑布流开源框架”指的是专门为Android平台设计的一类开源库,旨在帮助开发者快速、高效地构建瀑布流布局的界面。这些框架通常包括了数据加载、图片缓存、布局计算、滚动优化等核心功能。 描述中...