LeftVideoAdapter.java 5.06 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.ImageView;

import androidx.recyclerview.widget.RecyclerView;

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.widget.NiceImageView;

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

public class LeftVideoAdapter extends RecyclerView.Adapter<LeftVideoAdapter.ViewHolder> {
    private Context mContext;
    private OnItemClickLitener listener;//点击事件接口
    private List<RecordInfoDB> imageUrls;//ArrayList<String>
    //private ImageFetcher imageFetcher;
    private ViewHolder viewHolder;
    private View view;

    /**
     * 在构造方法中传入图片地址的数据
     * @param context
     * @param imageUrls
     */
    public LeftVideoAdapter(Context context, List<RecordInfoDB> imageUrls) {
        this.mContext = context;
        this.imageUrls = imageUrls;
        //初始化加载网络图片的jar包
        /*imageFetcher = new ImageFetcher(context);
        imageFetcher.setImageCache(ImageCache.getInstance(context));*/
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        view = LayoutInflater.from(mContext).inflate(R.layout.rv_item_left_video, null);
        viewHolder = new ViewHolder(view);
        return viewHolder;
    }

    public void setImageUrls(List<RecordInfoDB> imageUrls) {
        this.imageUrls = imageUrls;
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        RecordInfoDB temp = imageUrls.get( imageUrls.size() - position -1 );
        String file;
        /*Logger.d("File.separator "+File.separator + " " + File.pathSeparator + " " + File.pathSeparatorChar
                + " " + File.separatorChar);*/
        if ( temp.getType() == InitParam.FILE_PHOTO ) {
            holder.imagePlay.setVisibility(View.GONE);
            file = temp.getFilepath() + File.separator + temp.getFilename();
        } else {
            holder.imagePlay.setVisibility(View.VISIBLE);
            file = temp.getThumbnailpath() + File.separator + temp.getThumbnailname();
        }
        Glide.with(mContext).load( Uri.fromFile(new File(file)) ).into(holder.imageView);
        //holder.imageView.setBackgroundResource(R.mipmap.add);
        /*//设置内容为“hehe”的的元素为默认的添加按钮
        if (imageUrls.get(position).equals("hehe")) {
            holder.imageView.setBackgroundResource(R.mipmap.add);
        } else {
            *//**
             * 判断图片路径是网络地址还是本地图片
             * 设置路径之中包含“storage”的为本地图片
             *//*
            if (imageUrls.get(position).contains("storage")) {
                try {
                    File file = new File(imageUrls.get(position));
                    //将bitmap转化成drawable
                    Bitmap bmp = MediaStore.Images.Media.getBitmap(mContext.getContentResolver(), Uri.fromFile(file));
                    Drawable drawable =new BitmapDrawable(bmp);
                    //按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)
                    holder.imageViewBig.setScaleType(ImageView.ScaleType.CENTER_CROP);
                    holder.imageViewBig.setImageBitmap(bmp);
                } catch (IOException e) {
                    e.printStackTrace();
                }
//        holder.imageViewBig.setImageURI(Uri.parse(imageUrls.get(position)));
            } else {
                imageFetcher.loadImage(imageUrls.get(position), holder.imageViewBig, R.mipmap.touxiang);
            }
        }*/
    }


    @Override
    public int getItemCount() {
        return imageUrls.size();
    }

    public void setOnItemClickLitener(OnItemClickLitener listener) {
        this.listener = listener;
    }

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

    class ViewHolder extends RecyclerView.ViewHolder {
        NiceImageView imageView;
        ImageView imagePlay;

        public ViewHolder(View itemView) {
            super(itemView);
            imageView = (NiceImageView) itemView.findViewById(R.id.imageView);
            imagePlay = (ImageView) itemView.findViewById(R.id.imagePlay);
            /**
             *
             * 因为元素是变化的,动态的,所以对点击事件的处理放在ViewHolder类里面,调用getposition()
             * 可以获取到当前的元素位子
             */
            imageView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //int position = (Integer) v.getTag();
                    listener.onItemClick(getPosition());
                }
            });
        }
    }
}