美文网首页
自定义popmenu弹出菜单-android

自定义popmenu弹出菜单-android

作者: 大胡子的机器人 | 来源:发表于2018-09-20 14:49 被阅读0次

效果如下:


image.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格式的图片,如下:


bg_pop_single_menu.9.png

相关文章

网友评论

      本文标题:自定义popmenu弹出菜单-android

      本文链接:https://www.haomeiwen.com/subject/tuqnnftx.html