美文网首页
自定义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