仿照输入法,点击九宫格弹出相应内容的选择项

 

popup.xml
<?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="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:background="@drawable/textview_border"
    android:gravity="center">
    <TextView
        android:id="@+id/tv_1"
        android:gravity="center"
        android:textSize="@dimen/titleSize"
        android:textColor="@color/colorText"
        android:layout_width="36dp"
        android:layout_height="36dp"
        android:text="a"/>
    <TextView
        android:id="@+id/tv_2"
        android:gravity="center"
        android:textSize="@dimen/titleSize"
        android:textColor="@color/colorText"
        android:layout_width="36dp"
        android:layout_height="36dp"
        android:text="b"/>
    <TextView
        android:id="@+id/tv_3"
        android:gravity="center"
        android:textSize="@dimen/titleSize"
        android:textColor="@color/colorText"
        android:layout_width="36dp"
        android:layout_height="36dp"
        android:text="c"/>
</LinearLayout>

public void showPopWindows(View v,String tv1,String tv2,String tv3) {
    /** pop view */
    View mPopView = LayoutInflater.from(this).inflate(R.layout.popup, null);
    final PopupWindow mPopWindow = new PopupWindow(mPopView, ViewGroup.LayoutParams.WRAP_CONTENT,
            ViewGroup.LayoutParams.WRAP_CONTENT, true);
    /** set */
    mPopWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
    /** 这个很重要 ,获取弹窗的长宽度 */
    mPopView.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
    int popupWidth = mPopView.getMeasuredWidth();
    int popupHeight = mPopView.getMeasuredHeight();
    /** 获取父控件的位置 */
    int[] location = new int[2];
    v.getLocationOnScreen(location);
    /** 显示位置 */
    mPopWindow.showAtLocation(v, Gravity.NO_GRAVITY, (location[0] + v.getWidth() / 2) - popupWidth / 2, location[1]
            - popupHeight);
    mPopWindow.update();

    final TextView tv_1 = mPopView.findViewById(R.id.tv_1);
    final TextView tv_2 = mPopView.findViewById(R.id.tv_2);
    final TextView tv_3 = mPopView.findViewById(R.id.tv_3);
    tv_1.setText(tv1);
    tv_2.setText(tv2);
    tv_3.setText(tv3);

    tv_1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (mPopWindow != null) {
                setPwd(tv_1.getText().toString());
                mPopWindow.dismiss();
            }
        }
    });
    tv_2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (mPopWindow != null) {
                setPwd(tv_2.getText().toString());
                mPopWindow.dismiss();
            }
        }
    });
   tv_3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (mPopWindow != null) {
                setPwd(tv_3.getText().toString());
                mPopWindow.dismiss();
            }
        }
    });
}

 下载连接:https://download.csdn.net/download/yangchanghong1995/10553246

猜你喜欢

转载自blog.csdn.net/yangchanghong1995/article/details/81129230
今日推荐