ImageAdapter.java 2.9 KB
package com.people.comment.adapter;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.FrameLayout;
import android.widget.ImageView;

import com.people.comment.R;
import com.wd.foundation.wdkit.imageglide.ImageUtils;
import com.wd.foundation.wdkit.utils.ScreenUtils;

import java.util.ArrayList;
import java.util.List;

/**
 * @author qtiansheng
 * @date 2024/2/6
 * @Description 定制表情况图片适配器
 * @doc
 */
public class ImageAdapter extends BaseAdapter {
    private Context mContext;
    /**
     * 图片资源ID数组
     */
    private List<String> mImageUrls;

    private LayoutInflater inflater;

    /**
     * 构造函数
     * @param context
     * @param gifIcons
     */
    public ImageAdapter(Context context, List<String> gifIcons) {
        mContext = context;
        mImageUrls = new ArrayList<String>();
        if(gifIcons!= null && !gifIcons.isEmpty()) {
            mImageUrls.addAll(gifIcons);
        }
        inflater = LayoutInflater.from(mContext);
    }
 
    @Override
    public int getCount() {
        if(mImageUrls != null && mImageUrls.size() > 0){
            return mImageUrls.size();
        }else{
            return 0;
        }

    }
 
    @Override
    public Object getItem(int position) {
        return position;
    }
 
    @Override
    public long getItemId(int position) {
        return position;
    }
 
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ImageHolder viewHolder;
        if (convertView == null) {
            viewHolder = new ImageHolder();
            convertView = inflater.inflate(R.layout.item_emoji_gif, parent, false);
            viewHolder.imgLayout = (FrameLayout) convertView.findViewById(R.id.layout_gif);
            viewHolder.imageView = (ImageView) convertView.findViewById(R.id.iv_gifview);
            convertView.setTag(viewHolder);
        } else {
            viewHolder = (ImageHolder) convertView.getTag();
        }

        //最后一行设置下滑动间距
        if(position == getCount() - 1){
            ViewGroup.LayoutParams layoutParams = (ViewGroup.LayoutParams) viewHolder.imgLayout.getLayoutParams();
            layoutParams.height = ScreenUtils.dpToPx(80);
            viewHolder.imgLayout.setLayoutParams(layoutParams);
            viewHolder.imgLayout.setPadding(0,0,0,ScreenUtils.dpToPx(20));
        }

        // 设置图片资源ID对应的图片资源到ImageView中
        ImageUtils.getInstance().loadImageCanSameUrl(viewHolder.imageView,mImageUrls.get(position));

        return convertView;
    }

    public void setDataList(List<String> listStr) {
        mImageUrls.clear();
        mImageUrls.addAll(listStr);
        notifyDataSetChanged();
    }

    private class ImageHolder {
        FrameLayout imgLayout;
        ImageView imageView;
    }

}