AutoGridView:輕鬆實現微信朋友圈九宮格、點擊添加更多、點擊收起等功能

AutoGridView

關於

AutoGridView使用ViewGroup實現,可以如QQ空間與微信朋友圈中的照片那種九宮格方式排布(注:此處的九宮格排列不僅僅是可以按照QQ控件那種九宮格排布,只要宮格的個數達到可以開平方的要求(1x1,2x2,3x3,4x4…),都會按照正方形排列),同時AutoGridView也可以實現普通的宮格排布方式。此外AutoGridView還可以控制顯示的行數和列數,這個在需要實現 點擊展開更多點擊收起 中還是非常有用的。AutoGridView可以設定宮格的高,也可以採用默認的高,默認的高與宮格的寬相等。

AutoGridView還採用了Adapter模式,使用方式就如同ListView和Adapter搭配一樣簡單,可以 自定義item ,更加靈活!對於item,也使用了簡單的緩存複用,減少性能消耗…

推薦

  • ImageViewer 圖片預覽器,仿朋友圈和今日頭條圖片預覽效果

演示

先來看看效果把!

demogif]![demo.gif

添加依賴

  • 使用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、三種適配器

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章