package com.demo.lib.common.emotion; import android.os.Bundle; import androidx.fragment.app.Fragment; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.BaseAdapter; import android.widget.GridView; import com.lcjian.lcjianlibrary.R; import com.demo.lib.common.util.common.DimenUtils; public class EmotionGridFragment extends Fragment { public static final View EmotionTextView = null; private OnEditListener mOnEditListener; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { EmotionHandler.initEmotion(getActivity()); return inflater.inflate(R.layout.emotion_grid, container, false); } @Override public void onViewCreated(View view, Bundle savedInstanceState) { GridView gridView = view.findViewById(R.id.gv_emotion); gridView.setAdapter(new EmotionAdapter()); gridView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { CharSequence text = ((EmotionTextView) view).getText(); if (text.toString().equals("[退格键]")) { if (mOnEditListener != null) { mOnEditListener.onBack(); } } else { if (mOnEditListener != null) { mOnEditListener.onAdd(text); } } } }); } private class EmotionAdapter extends BaseAdapter { private String[] thumbArray; public EmotionAdapter() { thumbArray = EmotionHandler.faceMap.keySet().toArray(new String[] {}); } @Override public int getCount() { return thumbArray.length; } @Override public Object getItem(int position) { return thumbArray[position]; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = new EmotionTextView(parent.getContext()); convertView.setLayoutParams(new GridView.LayoutParams( DimenUtils.dipToPixels(40, parent.getContext()), DimenUtils.dipToPixels(40, parent.getContext()))); } ((EmotionTextView) convertView).setGravity(Gravity.CENTER); if (position == thumbArray.length - 1) { ((EmotionTextView) convertView).setEmotionWidth(DimenUtils.dipToPixels(25, parent.getContext())); ((EmotionTextView) convertView).setEmotionHeight(DimenUtils.dipToPixels(17, parent.getContext())); } else { ((EmotionTextView) convertView).setEmotionWidth(DimenUtils.dipToPixels(33, parent.getContext())); ((EmotionTextView) convertView).setEmotionHeight(DimenUtils.dipToPixels(28, parent.getContext())); } ((EmotionTextView) convertView).setText(thumbArray[position]); return convertView; } } public OnEditListener getOnEditListener() { return mOnEditListener; } public void setOnEditListener(OnEditListener onEditListener) { this.mOnEditListener = onEditListener; } public interface OnEditListener { void onBack(); void onAdd(CharSequence text); } }