項目地址:MultiPictureView
MultiPictureView是一個可以將多張圖片以網格的方式顯示的View,通過簡單的接口實現煩人的布局,從此解放你的小手手
顯示效果
- 支持設置圖片數量上限
- 支持設置最多顯示列數
- 支持動態布局和靜態布局兩種模式(見下圖)
- 支持編輯模式和展示模式(編輯模式可以增加和刪除圖片)
布局方式
動態布局
|
---|
靜態布局
|
編輯/顯示模式
顯示模式 | 編輯模式 |
---|---|
如何使用
1. 在布局中聲明
<com.goyourfly.multi_picture.MultiPictureView
android:id="@+id/multi_image_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:editable="false"
app:deleteDrawable="@drawable/..."
app:addDrawable="@drawable/..."
app:imageLayoutMode="DYNAMIC"
app:max="9"
app:space="6dp"
app:span="3" />
參數 | 類型 | 說明 | 默認值 |
---|---|---|---|
editable | boolean | 是否可編輯(添加和刪除) | false |
span | integer | 每行最多顯示多少 | 3 |
space | dimension | 圖片間隔大小 | 8dp |
max | integer | 最多顯示多少張圖片 | 9 |
imageLayoutMode | integer | 圖片布局類型:動態(DYNAMIC=1)和靜態(STATIC=2) | STATIC=2 |
deleteDrawable | drawable | 刪除圖標 | 紅色刪除Drawable |
addDrawable | drawable | 添加圖片 | 灰色添加圖片Drawable |
2. 在代碼中使用
2.1 初始化ImageLoader
MultiPictureView.setImageLoader(object : ImageLoader {
override fun loadImage(image: ImageView, uri: Uri) {
Vincent.with(image.context)
.load(uri)
.placeholder(R.drawable.ic_placeholder_loading)
.error(R.drawable.ic_placeholder_loading)
.into(image)
}
})
2.2 綁定圖片資源,設置事件監聽
multiPictureView = (MultiPictureView) findViewById(R.id.multi_image_view);
// 設置圖片資源
multiPictureView.setList(list:List<Uri>)
multiPictureView.setAddClickCallback(new MultiPictureView.AddClickCallback() {
@Override
public void onAddClick(View view) {
// 添加圖片回調...
}
});
multiPictureView.setDeleteClickCallback(new MultiPictureView.DeleteClickCallback() {
@Override
public void onDeleted(View view,int index) {
// 刪除圖片回調,如果不設置,默認刪除圖片...
}
});
multiPictureView.setItemClickCallback(new MultiPictureView.ItemClickCallback() {
@Override
public void onItemClicked(View view,int index,ArrayList<Uri> uris) {
// 圖片被點擊...
}
});
依賴
第一步:添加到根build.gradle
allprojects {
repositories {
...
jcenter()
}
}
第二步:在模塊的build.gradle添加依賴
dependencies {
compile 'com.github.goyourfly:multi_picture_view:latestVersion'
}
感謝
在Demo中使用了下面兩個開源項目,感謝一哈,雖然第二個是我寫的...大家要覺得好用,記得給我點個贊