效果如下:
![](https://img.haomeiwen.com/i4472062/7922f9f4c55a5c91.png)
SinglePopMenu.java
import android.content.Context;
import android.graphics.Point;
import android.graphics.drawable.ColorDrawable;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.PopupWindow;
import android.widget.TextView;
import io.slife.wallet.R;
import io.slife.wallet.kit.ScreenUtil;
public class SinglePopMenu extends PopupWindow {
private Context context;
private TextView tvMenu;
public SinglePopMenu(Context context) {
super(context);
this.context = context;
initalize();
}
private void initalize() {
LayoutInflater inflater = LayoutInflater.from(context);
View view = inflater.inflate(R.layout.view_pop_single_menu, null);
tvMenu = view.findViewById(R.id.tv_menu);
setContentView(view);
this.setOutsideTouchable(true);
this.setFocusable(true);
this.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);
this.setHeight(ScreenUtil.dpToPx(context.getResources(),50));
//实例化一个ColorDrawable颜色为半透明
ColorDrawable dw = new ColorDrawable(0x00000000);
//设置SelectPicPopupWindow弹出窗体的背景
this.setBackgroundDrawable(dw);
}
public void setClickListener(View.OnClickListener listener){
tvMenu.setOnClickListener(listener);
}
public void showAtItemTop(View view,Point point){
int x = point.x;
int y = point.y;
int itemHeight = ScreenUtil.dpToPx(context.getResources(),70); //按照业务场景更改,我这里由于是在recycleview中需要定位popwindows的高度,如果有其他号的方法欢迎留言
this.showAtLocation(view, Gravity.LEFT | Gravity.TOP,x,y-itemHeight <= 0?y:y-itemHeight);
}
}
view_pop_single_menu.xml布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="@dimen/list_line_normal"
android:background="@drawable/bg_pop_single_menu"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_menu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:textColor="@color/white"
android:maxLines="1"
android:text="@string/cancel_follow_coin"
android:textSize="@dimen/text_size_14" />
</LinearLayout>
其中@drawable/bg_pop_single_menu文件是.9格式的图片,如下:
![](https://img.haomeiwen.com/i4472062/24a4b45e62c70af7.png)
网友评论