• Android UI开发第二十二篇——android 瀑布流图片实现


        自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
    *
    */

  • 相关阅读:
    VMware安装CentOS6.8
    YouZack英语学习网站,英语四六级的福音
    WIN7环境下配置vscode c++环境
    连续出现的字符
    丛林中的路
    兔子与樱花
    C++语言基础--02_运算符
    C++语言基础--01_合法标识符与基本数据类型
    C++语言基础--0_前言
    字符串笔试题
  • 原文地址:https://www.cnblogs.com/xyzlmn/p/3168083.html
Copyright © 2020-2023  润新知