1.创建res->layout->ic_popup.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/ic_pop_button">
<TextView
android:layout_marginTop="3dp"
android:id="@+id/tv_pop1"
android:layout_gravity="center"
android:clickable="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="项目1"
android:background="@drawable/ic_pop_button"
android:textSize="20sp"/>
<TextView
android:id="@+id/tv_pop2"
android:clickable="true"
android:layout_marginTop="2dp"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ic_pop_button"
android:text="项目2"
android:textSize="20sp"/>
</LinearLayout>
2.设置按钮图样 res->drawable->ic_pop_button.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- 填充的颜色 -->
<solid android:color="@android:color/darker_gray" />
<!--边框的宽度及颜色-->
<stroke android:width="4px" android:color="@android:color/holo_blue_dark" />
<!-- android:radius 圆角的半径 -->
<corners android:radius="2dp" />
</shape>
3.创建activity
@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
if (window != null && window.isShowing()) {
window.dismiss();
}
showPopupWindow(event.getRawX(), event.getRawY());
}
return super.onTouchEvent(event);
}
private void showPopupWindow(float x, float y) {
view = LayoutInflater.from(this).inflate(R.layout.ic_popup, null);
window = new PopupWindow(view, 200, 100, true);
window.setBackgroundDrawable(new BitmapDrawable());
window.setOutsideTouchable(true);
window.showAtLocation(view, Gravity.LEFT | Gravity.TOP, (int) x, (int) y);
setCaseClick();
}
private void setCaseClick() {
mPopCase1 = view.findViewById(R.id.tv_pop1);
mPopCase2 = view.findViewById(R.id.tv_pop2);
mPopCase1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(1a.class);
}
});
mPopCase2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(2b.class);
}
});
}