RecyView Adapter

package com.dayou.menluo.adapter;

import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
import android.graphics.Color;
import android.net.Uri;
import android.provider.CalendarContract;
import android.provider.MediaStore;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.Toast;

import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.request.RequestOptions;
import com.dayou.dayouspeech.AppApplication;
import com.dayou.dayouspeech.R;
import com.dayou.dayouspeech.TTsOperator;
import com.dayou.menluo.config.KangConstants;
import com.dayou.menluo.utils.FaceDB;

import java.io.File;
/***
 *用于家庭成员添加页面RecyclerView适配器
 * created by sjt 2019/4/10
 */
public class FamilyAddRcAdapter extends RecyclerView.Adapter<FamilyAddRcAdapter.ViewHolder> {
    private File familyPhotos = new File(KangConstants.PATH_FAMILY_PHOTO);
    private File [] mList;
    private Context mContext;
    private OnLastItemClickListener mListener;
    private OnLastImageClickListener mImaegListener;
    private String name1;

    public FamilyAddRcAdapter(Context mContext) {
        this.mContext = mContext;
        mList = familyPhotos.listFiles();
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(mContext).inflate(R.layout.item_family,parent,false);
        return  new ViewHolder(view);

    }

    @Override
    public void onBindViewHolder(@NonNull final ViewHolder holder, final int position) {
        if (position != getItemCount()-1){
            File param = mList[position];
            String name = mList[position].getName();
            holder.item_family_name_txt.setText(name.substring(0,name.lastIndexOf(".")));
            if (position != getItemCount()-1){
                holder.item_family_name_txt.setBackgroundResource(R.drawable.shape_roundtue_edittext);
            }
            RequestOptions options = new RequestOptions()
                    .override(400,400)  //指定图片的尺寸
                    //指定图片的缩放类型为fitCenter (等比例缩放图片,宽或者是高等于ImageView的宽或者是高。)
                    .fitCenter()
                    //指定图片的缩放类型为centerCrop (等比例缩放图片,直到图片的狂高都大于等于ImageView的宽度,然后截取中间的显示。)
                    .centerCrop()
                    .circleCrop()//指定图片的缩放类型为centerCrop (圆形)
                    .skipMemoryCache(true)  //跳过内存缓存
                    .diskCacheStrategy(DiskCacheStrategy.NONE)  //跳过磁盘缓存
                    ;
            Glide.with(mContext).load(param.getPath()).apply(options)
                    .into(holder.item_family_head_photo_img);


            holder.delete_img.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    if (mImaegListener!=null){
                        mImaegListener.onImageLastClick(holder.item_family_name_txt.getText().toString(),holder.delete_img,holder.item_FrameLayout);
                    }
                }
            });


            holder.item_family_head_photo_img.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View view) {
                    if (position != getItemCount()-1){
                        holder.delete_img.setVisibility(View.VISIBLE);
                        holder.item_FrameLayout.setVisibility(View.VISIBLE);
                    }
                    return true;
                }
            });


            holder.item_family_name_txt.setOnFocusChangeListener(new View.OnFocusChangeListener() {
                @Override
                public void onFocusChange(View view, boolean hasFocus) {
                    if (hasFocus) {
                        // 此处为得到焦点时的处理内容
                        holder.item_family_name_txt.setBackgroundResource(R.drawable.shap_rounded_edittext);
                        name1= holder.item_family_name_txt.getText().toString();
                    } else {
                        // 此处为失去焦点时的处理内容
                        if (position != getItemCount()-1){
                            holder.item_family_name_txt.setBackgroundResource(R.drawable.shape_roundtue_edittext);
                            //修改人脸名称
                            File delfile = new File(KangConstants.PATH_FAMILY_PHOTO + "/" + name1 + ".png");
                            if (delfile.exists()) {
                                delfile.renameTo(new File(KangConstants.PATH_FAMILY_PHOTO + "/" + holder.item_family_name_txt.getText().toString() + ".png"));
                            }
                            FaceDB mFamilyDB = ((AppApplication) mContext.getApplicationContext()).mFamilyDB;
                            mFamilyDB.update(name1,holder.item_family_name_txt.getText().toString());
                        }
                    }
                }
            });


        }else {
            holder.item_family_head_photo_img.setImageResource(R.drawable.zu1);
            holder.item_family_name_txt.setEnabled(true);
            holder.item_family_name_txt.setHint("添加");
            holder.item_family_name_txt.setHintTextColor(Color.WHITE);
        }

        holder.item_family_head_photo_img.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (TextUtils.isEmpty(holder.item_family_name_txt.getText().toString())){
                    TTsOperator.getInstance().playTTs("请首先填写家庭成员身份");
                    return;
                }
                if (mListener != null){
                    mListener.onLastClick(holder.item_family_name_txt.getText().toString());
                }

            }
        });


        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                holder.item_FrameLayout.setVisibility(View.GONE);
                holder.delete_img.setVisibility(View.GONE);
            }
        });


    }

    @Override
    public int getItemCount() {
        return mList == null ? 1 : mList.length+1;
    }

    static class ViewHolder extends RecyclerView.ViewHolder{
        ImageView item_family_head_photo_img;
        EditText item_family_name_txt;
        ImageView delete_img;
        FrameLayout item_FrameLayout;
        public ViewHolder(View itemView) {
            super(itemView);
            item_family_head_photo_img = (ImageView) itemView.findViewById(R.id.item_family_head_photo_img);
            item_family_name_txt = (EditText)itemView.findViewById(R.id.item_family_name_txt);
            delete_img = (ImageView)itemView.findViewById(R.id.delete_img);
            item_FrameLayout = (FrameLayout)itemView.findViewById(R.id.item_framelayout);

        }
    }


    public void updateList(){
        mList = familyPhotos.listFiles();
        this.notifyDataSetChanged();
    }

    public interface OnLastItemClickListener{
        void onLastClick(String name);
    }

    public void  setOnLastItemClickListener(OnLastItemClickListener mListener){
        this.mListener = mListener;
    }


    public interface  OnLastImageClickListener{
        void onImageLastClick(String name,ImageView imageView,FrameLayout frameLayout);
    }

    public void setOnLastImageClickListener(OnLastImageClickListener mListener){
        this.mImaegListener = mListener;
    }



}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值