源码地址:https://github.com/maurycyw/StaggeredGridView
描述:StaggeredGridView 允许你创建一个不规则的多列GridView ,类似于Pinterest的效果,包含了自己的OnItemClickListener和OnItemLongClickListener。
引用:将此工程放到你的主项目的同根目录下,以子项目的方式引入到你的主项目
属性: numColumns : 定义图片显示的列数
drawSelectorOnTop : 点击某一条记录,颜色显示在最上面还是作为背景显示。
StaggeredGridView 可以作为一个自定义view添加进任何layout中。
<pre name="code" class="java"><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:staggered="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#000000" tools:context=".MainActivity" > <com.origamilabs.library.views.StaggeredGridView android:id="@+id/staggeredGridView1" android:layout_width="match_parent" android:layout_height="wrap_content" staggered:drawSelectorOnTop="true" staggered:numColumns="2" /> </RelativeLayout>
以上是在xml文件中如何引用StaggeredGridView,接下来让我们用一个demo来实际体验一下:
首先放一个本开源项目自带的官方demo地址:https://github.com/maurycyw/StaggeredGridViewDemo
将此项目导入到你的工作空间(即workspace,并保证和上面的子项目在同目录下),以library的形式引入上面的自定义控件。
如上图所示,在这个demo里面,有三个包,其中loader、views为工具包,里面包含了图片的下载和缓存,以及自定义imageview。
运行效果如下:(第一张图片是用的百度图片的链接,为了测试图片url的识别)
总结:1、可自定义列数
2、可自定义列边距、行边距
3、自带图片本地缓存,二次加载很流畅
4、我试了多个网站的图片链接,发现有时不识别百度图片的链接,不知道为什么,知道的还请不吝赐教!