自pinterest使用了瀑布流展示图片后,有很多应用开始使用瀑布流的方式,像蘑菇街,美丽说。这里的瀑布流实现使用了开源代码。
layout:
<?xml version="1.0" encoding="utf-8"?>
<com.dodowaterfall.LazyScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/waterfall_scroll"
android:scrollbars="vertical"
>
<LinearLayout
android:id="@+id/waterfall_container"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/white"
>
</LinearLayout>
</com.dodowaterfall.LazyScrollView>
整个瀑布流用的是ScrollView的子类LazyScrollView。这个LazyScrollView中设置了一个监听器接口,用来监听ScrollView执行的不同阶段。接口如下:
public interface OnScrollListener {
void onBottom();
void onTop();
void onScroll();
void onAutoScroll(int l, int t, int oldl, int oldt);
}
对于每一幅图,都用一个ImageView的子类FlowView来表示。为了不阻塞UI线程,图片加载和图片更新都分别用不同的线程来做。这两个线程都在FlowView中。FlowView提供了加载和更新的接口给Activity调用。瀑布流实例的主Activity是MainActivity,常量都保存在Constants类中,方便维护。
瀑布流最重要的是图片的内存回收机制,防止发生内存溢出的情况(OOM)。
参考:
https://github.com/dodola/android_waterfall
http://developer.android.com/training/displaying-bitmaps/process-bitmap.html
/**
* @author 张兴业
* 邮箱:xy-zhang#163.com
* android开发进阶群:278401545
*
*/
分享到:
相关推荐
在现代Android开发中,更推荐使用`ViewPager`结合`TabLayout`(来自`androidx.appcompat.widget`库)或者`BottomNavigationView`(来自`androidx.navigation.ui`库)来实现滑动Tab效果。这两种方法更稳定,且有更好...
在Android应用开发中,下拉刷新(Pull To Refresh)功能是一项常见的UI交互设计,它允许用户通过在列表顶部向下拉动来触发数据的刷新操作。这一功能显著提升了用户体验,尤其是在查看实时信息更新时,如新闻、社交...
总之,实现Android RecyclerView中的图片自适应高度的瀑布流布局,需要结合自定义ImageView、图片加载库、StaggeredGridLayoutManager以及适当的滚动和数据加载逻辑。这个过程涉及到Android UI设计、布局管理、数据...
9. **Third-party UI库**:除了官方组件,还有很多第三方库增强了Android的UI开发能力,如Butter Knife(视图注入)、Retrofit(网络请求)、Glide(图片加载)、Picasso(图片加载)等。这些库简化了开发过程,提高...
在Android应用开发中,UI设计是至关重要的组成部分,而PopupWindow则是实现丰富交互效果的一种工具。本篇文章将深入探讨如何在Android中使用PopupWindow,并通过一个具体的实例来讲解其用法。 PopupWindow是Android...
在Android平台上进行UI界面开发时,图片资源是至关重要的元素,它们不仅决定了应用的视觉吸引力,也直接影响用户体验。本文将围绕“Android UI界面开发图片”这一主题,深入探讨相关知识点,帮助开发者创建出美观且...
在Android UI开发中,实现界面元素的动态交互是提升用户体验的关键之一。本篇将深入探讨如何利用ViewFlipper组件和GestureDetector类实现左右滑动切换视图的效果,这在主页面或多个内容区域展示的场景中非常常见。 ...
这份"Android开发笔记——UI基础编程"的资料集包含了两部分:新版Android开发教程+笔记七--基础UI编程1.pdf和新版Android开发教程+笔记七--基础UI编程2.pdf,将深入讲解Android应用程序中用户界面的设计与实现。...
总之,Android瀑布流效果的实现涉及布局管理、数据适配、动态计算和加载策略等多个方面,开发者需要对Android UI机制有深入理解。通过研究WaterfallDemo_2项目,可以系统地学习和掌握这一技术。
这个名为“安卓Android源码——瀑布流DEMO源码.zip”的压缩包显然包含了实现瀑布流布局的Android源代码,以及相关的说明和示例资源。 首先,我们来理解瀑布流(Waterfall)布局的概念。瀑布流是一种模仿自然界瀑布...
在Android UI开发中,SlidingDrawer是一个非常实用的组件,它允许开发者实现类似抽屉的交互效果,常见于导航栏或者设置菜单等场景。自SDK 1.5版本开始引入,SlidingDrawer提供了水平和垂直两种展开方式,使得用户...
综上所述,这个"Android源码——瀑布流源码.7z"包含的示例涵盖了Android开发中多个重要知识点,包括自定义布局、RecyclerView的使用、Adapter和ViewHolder机制、异步加载以及性能优化等。通过对这些内容的深入学习和...
瀑布流图片显示是Android开发中常见的一种布局方式,主要用于展示大量图片,如新闻、商品或者社交媒体的feed。这种布局的特点是图片逐个流式排列,每一行的图片数量不固定,形成一种类似瀑布倾泻的效果。下面将详细...
综上所述,实现网络图片RecyclerView瀑布流需要掌握RecyclerView的使用,自定义适配器,选择或实现适合的LayoutManager,理解图片异步加载原理,以及熟练处理数据加载和UI刷新。这个过程可能会涉及到许多细节,需要...
这个名为“安卓Android源码——UI界面源码.zip”的压缩包,很显然是一个包含Android用户界面(UI)相关源代码的资源集合。下面我们将详细探讨Android UI界面的构建原理以及可能包含的知识点。 1. **Android UI框架*...
在Android开发中,瀑布流(Waterfall Flow)是一种常见的布局方式,常用于展示图片或商品信息,例如在电商应用中。这种布局模仿了瀑布式的视觉效果,每列的高度不固定,使得界面更具动态感和吸引力。本文将详细介绍...
通过深入研究这个"Android瀑布流加载图片效果Demo",开发者可以掌握Android中实现瀑布流布局的关键技术和最佳实践,这对于开发新闻、电商等应用非常有用。同时,这个Demo也是对Android性能优化、内存管理以及网络...
在本项目中,"AndroidStudio————实战演练——仿美团外卖菜单"是一个专注于使用Android Studio开发的应用程序实战案例,目标是创建一个类似于美团外卖的菜单功能。这个项目涵盖了多个Android开发的关键知识点,...
总的来说,学习并理解这个“Android源码——UI界面源码.rar”中的内容,对于深入理解Android UI开发、提升自定义界面能力具有很大的帮助。开发者可以通过阅读源码,学习如何高效地创建、管理和交互UI组件,进一步...
"安卓Android源码——UI设计之 仿做蘑菇街UI设计 源码.zip" 提供了一个实战案例,通过模仿知名电商平台蘑菇街的UI设计,帮助开发者学习和理解如何在Android平台上构建美观、易用的界面。这份源码不仅包含了设计元素...