AutoGridView
關於
AutoGridView使用ViewGroup實現,可以如QQ空間與微信朋友圈中的照片那種九宮格方式排布(注:此處的九宮格排列不僅僅是可以按照QQ控件那種九宮格排布,只要宮格的個數達到可以開平方的要求(1x1,2x2,3x3,4x4…),都會按照正方形排列),同時AutoGridView也可以實現普通的宮格排布方式。此外AutoGridView還可以控制顯示的行數和列數,這個在需要實現 點擊展開更多
和 點擊收起
中還是非常有用的。AutoGridView可以設定宮格的高,也可以採用默認的高,默認的高與宮格的寬相等。
AutoGridView還採用了Adapter模式,使用方式就如同ListView和Adapter搭配一樣簡單,可以 自定義item
,更加靈活!對於item,也使用了簡單的緩存複用,減少性能消耗…
推薦
- ImageViewer 圖片預覽器,仿朋友圈和今日頭條圖片預覽效果
演示
先來看看效果把!
添加依賴
- 使用Gradle
// 注:如果添加依賴成功,則此句不必添加,此句作用僅爲當項目在被審覈時,緊急需要使用時添加
allprojects {
repositories {
...
// 如果添加依賴時,報找不到項目時(項目正在審覈),可以添加此句maven地址,如果找到項目,可不必添加
maven { url "https://dl.bintray.com/albertlii/android-maven/" }
}
}
dependencies {
compile 'com.liyi.view:auto-gridview:1.1.0'
}
- 使用Maven
<dependency>
<groupId>com.liyi.view</groupId>
<artifactId>auto-gridview</artifactId>
<version>1.1.0</version>
<type>pom</type>
</dependency>
自定義屬性
agv_mode(網格圖的模式,默認爲 nine)
- nine(類似QQ空間、微信朋友圈的九宮格類型網格圖)
- normal(依次顯示網格的普通類型網格圖)
agv_row(item 的行數,默認爲 3)
- agv_column(item 的列數,默認 爲3)
- agv_item_height(item 的高度,默認與宮格圖的寬相等)
- agv_horizontal_space(網格間的橫向間距,默認爲 10px)
- agv_vertical_space(網格間的縱向間距,默認爲 10px)
- agv_nines_widthper(九宮格模式下,單個 item 時,item 的寬佔 parent 的可用總寬的比例(範圍0-1),默認爲自適應)
- agv_nines_heightper(九宮格模式下,單個 item 時,item 的高與 parent 的可用總寬的比(範圍0-1),默認爲自適應)
使用方法
XML 中添加 AutoGridView
<com.liyi.grid.AutoGridView
android:id="@+id/autoGridVi"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
代碼中使用 AutoGridView
1、三種適配器
SimpleAutoGridAdapter
:簡用適配器,可以直接使用,用於常規需求demo中使用示例QuickAutoGridAdapter
:快捷適配器,繼承自BaseAutoGridAdapter
,方便快速開發demo中使用示例BaseAutoGridAdapter
:基礎適配器,使用方法同ListView與BaseAdapter
demo中使用示例
2、簡單使用
例:(注:此處使用的 SimpleAutoGridAdapter)
mAdapter = new SimpleAutoGridAdapter<Integer, BaseAutoGridHolder>(mImageList);
mAdapter.setImageLoader(new SimpleAutoGridAdapter.ImageLoader<Integer>() {
@Override
public void onLoadImage(int position, Integer item, ImageView imageView) {
imageView.setImageResource(item);
}
});
autoGridVi.setAdapter(mAdapter);
github傳送門
https://github.com/albert-lii/AutoGridView