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