ShowGdItemAdapter.java 4.22 KB
package com.sw.laryngoscope.adapter;

import android.content.Context;
import android.net.Uri;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;

import com.bumptech.glide.Glide;
import com.sw.laryngoscope.R;
import com.sw.laryngoscope.common.InitParam;
import com.sw.laryngoscope.db.RecordInfoDB;
import com.sw.laryngoscope.utils.Logger;

import java.io.File;
import java.util.List;

public class ShowGdItemAdapter extends BaseAdapter {

    private Context context;

    private List<RecordInfoDB> list;

    private int curSelPos = 0;

    private LayoutInflater mInflater;

    private OnClickLitener listener;

    public void setList(List<RecordInfoDB> list) {
        this.list = list;
        notifyDataSetChanged();
    }

    public void setCheckItem(int position) {
        curSelPos = position;
    }

    public ShowGdItemAdapter(Context context, List<RecordInfoDB> list) {
        this.context = context;
        this.list = list;
        mInflater = LayoutInflater.from(context);
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        ViewHolder viewHolder;
        if (convertView != null) {
            viewHolder = (ViewHolder) convertView.getTag();
        } else {
            convertView = LayoutInflater.from(context).inflate(R.layout.item_file_video, null, false);
            viewHolder = new ViewHolder(convertView);
            convertView.setTag(viewHolder);
            viewHolder.item_detail_img = (ImageView)convertView.findViewById(R.id.item_detail_img);
            viewHolder.imagePlay = (ImageView)convertView.findViewById(R.id.imagePlay);
            viewHolder.lay_item_img = (LinearLayout)convertView.findViewById(R.id.lay_item_img);
        }

        if ( curSelPos == position ) {
            viewHolder.item_detail_img.setSelected(true);
        } else {
            viewHolder.item_detail_img.setSelected(false);
        }

        RecordInfoDB temp = list.get( list.size() - position -1 );
        String file;
        if ( temp.getType() == InitParam.FILE_PHOTO ) {
            viewHolder.imagePlay.setVisibility(View.GONE);
            file = temp.getFilepath() + File.separator + temp.getFilename();
        } else {
            viewHolder.imagePlay.setVisibility(View.VISIBLE);
            file = temp.getThumbnailpath() + File.separator + temp.getThumbnailname();
        }
        Glide.with(context).load( Uri.fromFile(new File(file)) ).into(viewHolder.item_detail_img);
        /*if ( listname.get(position).equals(context.getString(R.string.position_parlor))) {
            viewHolder.img_item.setImageResource(R.mipmap.parlor);
        }
        viewHolder.tv_name.setText(listname.get(position));*/
        viewHolder.lay_item_img.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //int position = (Integer) v.getTag();
                curSelPos = position;
                listener.onItemClick(list.size() - position -1);
                notifyDataSetChanged();
                Logger.d(" lay_item_img onClick " + curSelPos);
            }
        });
        return convertView;
    }

    static class ViewHolder {
        //@BindView(R.id.img_item)
        ImageView item_detail_img;
        ImageView imagePlay;
        //@BindView(R.id.tv_name)
        LinearLayout lay_item_img;

        ViewHolder(View view) {
            //ButterKnife.bind(this, view);
        }
    }

    public OnClickLitener getListener() {
        return listener;
    }

    public void setOnClickLitener(OnClickLitener listener) {
        this.listener = listener;
    }

    public interface OnClickLitener {
        void onItemClick(int position);
    }

    public static int dip2px(Context context, float dpValue) {
        final float scale = context.getResources().getDisplayMetrics().density;
        return (int) (dpValue * scale + 0.5f);
    }

}