今天研究了一下瀑布流,来说一下我实现它的方法。
看一下效果图:
基本的思路是重写了 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 瀑布流效果,详情请下载参考,如有问题请留言指明,thanks for you.
Android瀑布流,动态加载图片,很好的Android瀑布流集成模块。
Android瀑布流DEMO源码,可根据自己需求进行瀑布流的图片定义,自行进行修改
android 瀑布流效果,详情请下载参考,如有问题请留言指明,thanks for you.
android瀑布流代码大全,收集了至少10个瀑布流的demo,这些都是做瀑布流开发时收集的,简单的,复杂的,应有尽有,物超所值!
android瀑布流容器,支持多重效果展示 文章地址: http://blog.csdn.net/rzleilei/article/details/51313712
特别简单的android瀑布流开发例子,网上有个叫dodowaterfall的例子https://github.com/dodola/android_waterfall,感觉太麻烦了,所以弄了一个简单的
Android瀑布流实现,类似于蘑菇街和迷尚 应用里的排列效果 超级酷 网络下载图片
android 瀑布流方式加载图片 加载图片数量大 稳定 响应点击事件 编译运行通过。
Android瀑布流加载图片效果
Android瀑布流照片墙实现,体验不规则排列的美感
Android 瀑布流源码.zip
Android 瀑布流布局库源码。 交错网格视图支持多个大小不同的列和行,支持页眉和页脚。
android 瀑布流 刷新 加载更多
Android实现瀑布流的demo可以直接拿来使用...已经封装好了
Android瀑布流,解析博客地址 http://blog.csdn.net/pangzaifei/article/details/37821669
Android瀑布流实现,类似于蘑菇街和迷尚 应用里的排列.zip Android瀑布流实现,类似于蘑菇街和迷尚 应用里的排列.zip Android瀑布流实现,类似于蘑菇街和迷尚 应用里的排列.zip Android瀑布流实现,类似于蘑菇街和...
[ Android 瀑布流简单实现 ] Android 瀑布流简单实现对图片的处理
一个类似蘑菇街的Android瀑布流展示代码,值得参考。
详见http://blog.csdn.net/aishang5wpj/article/details/50602230