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; } }
RecyView Adapter
最新推荐文章于 2024-01-15 13:40:25 发布