package com.jaydenxiao.androidfire.ui.zone.adapter;
import android.app.Activity;
import android.content.Context;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.aspsine.irecyclerview.baseadapter.BaseAblistViewAdapter;
import com.jaydenxiao.androidfire.R;
import com.jaydenxiao.common.commonutils.ImageLoaderUtils;
import com.jaydenxiao.common.commonutils.ViewHolderUtil;
import com.jaydenxiao.common.imagePager.BigImagePagerActivity;
import java.util.List;
/**
* des:9宫图适配器
* Created by xsf
* on 2016.09.16:33
*/
public class NinePicturesAdapter extends BaseAblistViewAdapter<String> {
private boolean showAdd = true;
private int picturnNum = 0;
private boolean isDelete = false;//当前是否显示删除按钮
private OnClickAddListener onClickAddListener;
private boolean isAdd=true;//当前是否显示添加按钮
public NinePicturesAdapter(Context context, int picturnNum, OnClickAddListener onClickAddListener) {
super(context);
this.picturnNum = picturnNum;
this.onClickAddListener = onClickAddListener;
showAdd();
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(mContext).inflate(R.layout.item_grid_photo, parent, false);
}
final ImageView imageView = ViewHolderUtil.get(convertView, R.id.img_photo);
ImageView imgDelete = ViewHolderUtil.get(convertView, R.id.img_delete);
final String url = getData().get(position);
//显示图片
if (TextUtils.isEmpty(url) && showAdd) {
ImageLoaderUtils.display(mContext, imageView, R.drawable.addphoto);
imgDelete.setVisibility(View.GONE);
} else {
imgDelete.setVisibility(View.VISIBLE);
ImageLoaderUtils.display(mContext, imageView, url);
}
autoHideShowAdd();
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//再次选择图片
if (TextUtils.isEmpty(url)) {
if (onClickAddListener != null) {
onClickAddListener.onClickAdd(position);
}
} else {
//放大查看图片
BigImagePagerActivity.startImagePagerActivity((Activity) mContext, getData(), position);
}
}
});
//删除按钮
imgDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
remove(position);
if (!isDelete && getCount() < 1) {
add("");
isDelete = true;
}
notifyDataSetChanged();
}
});
return convertView;
}
@Override
public void setData(List<String> d) {
boolean hasAdd=false;
for (int i = 0; i < d.size(); i++) {
if(TextUtils.isEmpty(d.get(i))){
hasAdd=true;
break;
}
}
super.setData(d);
if(!hasAdd){
showAdd();
}
}
@Override
public void addAll(List<String> d) {
if(isAdd){
HideAdd();
}
super.addAll(d);
showAdd();
}
/**
* 移除add按钮
*/
public void autoHideShowAdd(){
int lastPosition=getData().size()-1;
if(lastPosition==picturnNum&&getData().get(lastPosition)!=null&&TextUtils.isEmpty(getData().get(lastPosition))){
getData().remove(lastPosition);
isAdd=false;
notifyDataSetChanged();
}else if(!isAdd){
showAdd();
}
}
/**
* 移除add按钮
*/
public void HideAdd(){
int lastPosition=getData().size()-1;
if(getData().get(lastPosition)!=null&&TextUtils.isEmpty(getData().get(lastPosition))){
getData().remove(lastPosition);
isAdd=false;
notifyDataSetChanged();
}
}
/**
* 显示add按钮
*/
public void showAdd(){
if(getData().size()<picturnNum){
addAt(getData().size(),"");
isAdd=true;
notifyDataSetChanged();
}
}
/**
* 获取图片张数
* @return
*/
public int getPhotoCount(){
return isAdd==true?getCount()-1:getCount();
}
/**
* 加号接口
*/
public interface OnClickAddListener {
void onClickAdd(int positin);
}
}