//导一个架包这是下载地址
https://github.com/jaikydota/Android-FaceView
//mainActivty
package com.bawei.com.ceshidome; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.text.Html; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.TextView; import com.jaiky.test.faceview.FaceImageGetter; public class MainActivity extends AppCompatActivity { Button btn1; TextView tvShow; FaceImageGetter mFaceImageGetter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn1 = (Button) findViewById(R.id.btn1); tvShow = (TextView) findViewById(R.id.tvShow); mFaceImageGetter = new FaceImageGetter(this); btn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { final ReplyDialog replyDialog = new ReplyDialog(MainActivity.this); replyDialog.setHintText("回复某人的评论...") .setOnBtnCommitClickListener(new View.OnClickListener() { @Override public void onClick(View v) { replyDialog.dismiss(); Log.d("XXX", replyDialog.getContent()); //它是以html的形式布置 tvShow.setText(Html.fromHtml(replyDialog.getContent() + "    ", mFaceImageGetter, null)); } }) .show(); } }); } }
//Dialog工具类
package com.bawei.com.ceshidome; import android.app.Dialog; import android.content.Context; import android.os.Bundle; import android.os.Handler; import android.view.Gravity; import android.view.Window; import android.view.WindowManager; import android.view.inputmethod.InputMethodManager; import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; import com.jaiky.test.faceview.FaceView; /** * Created by lenovo on 2018/4/14. */ public class ReplyDialog extends Dialog { private FaceView faceView; private EditText etContent; private ImageView ivFace; private LinearLayout llBtnReply; private Context mContext; public ReplyDialog(Context context) { super(context, R.style.MyNoFrame_Dialog); mContext = context; init(); } private ReplyDialog(Context context, int theme) { super(context, theme); mContext = context; init(); } private void init() { setContentView(R.layout.dialog_replyform); // 设置宽度 Window window = getWindow(); window.setGravity(Gravity.BOTTOM); WindowManager.LayoutParams lp = window.getAttributes(); lp.width = WindowManager.LayoutParams.MATCH_PARENT; window.setAttributes(lp); ivFace = (ImageView) findViewById(R.id.dialog_reply_ivFace); etContent = (EditText) findViewById(R.id.dialog_reply_etContent); llBtnReply = (LinearLayout) findViewById(R.id.dialog_reply_llBtnReply); faceView = (FaceView) findViewById(R.id.face_view); faceView.setEdit(etContent); faceView.setBtnView(ivFace); // 弹出键盘 etContent.setFocusable(true); etContent.setFocusableInTouchMode(true); etContent.requestFocus(); new Handler().postDelayed(new Runnable() { @Override public void run() { InputMethodManager inputManager = (InputMethodManager) mContext .getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.showSoftInput(etContent, 0); } }, 200); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } public ReplyDialog setContent(String content) { etContent.setText(content); return this; } public ReplyDialog setHintText(String hint) { etContent.setHint(hint); return this; } public String getContent() { return etContent.getText().toString(); } public ReplyDialog setOnBtnCommitClickListener( android.view.View.OnClickListener onClickListener) { llBtnReply.setOnClickListener(onClickListener); return this; } }//mainActivity布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="#DFDFDF" tools:context="com.bawei.com.ceshidome.MainActivity"> <TextView android:id="@+id/tvShow" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20dp" android:background="@drawable/ic_qq" android:text="Hello World "/> <Button android:id="@+id/btn1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="回复"/> </LinearLayout>
//工具类布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:orientation="vertical" android:layout_height="match_parent"> <View android:layout_width="match_parent" android:layout_height="0.1dp" android:background="#b4b4b4" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#f9f9f9" android:gravity="center_vertical" android:orientation="horizontal" android:paddingBottom="7dp" android:paddingTop="7dp" > <ImageView android:id="@+id/dialog_reply_ivFace" android:layout_width="27dp" android:layout_height="27dp" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_gravity="center_vertical" android:clickable="true" android:contentDescription="@null" android:src="@drawable/chatform_face_selector" /> <EditText android:id="@+id/dialog_reply_etContent" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:layout_gravity="center_vertical" android:gravity="center_vertical" android:hint="填写回复内容..." android:inputType="text" android:paddingBottom="7dp" android:paddingLeft="10dp" android:paddingRight="10dp" android:paddingTop="7dp" android:textColorHint="#aaaaaa" android:textSize="13sp" /> <LinearLayout android:id="@+id/dialog_reply_llBtnReply" android:layout_width="wrap_content" android:layout_height="30dp" android:layout_gravity="center_vertical" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:clickable="true" android:gravity="center" android:orientation="horizontal" android:paddingLeft="8dp" android:paddingRight="8dp" android:visibility="visible" > <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:text="回复" android:textColor="#ffffff" android:textSize="13sp" /> </LinearLayout> </LinearLayout> <com.jaiky.test.faceview.FaceView android:id="@+id/face_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" > </com.jaiky.test.faceview.FaceView> </LinearLayout>
//styles.xml
<!-- 无标题无背景对话框主题 --> <style name="MyNoFrame_Dialog" parent="android:Theme.Dialog"> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowNoTitle">true</item> </style>