android 比较简单的弹出对话框pupopwindow

呃,其实这个功能很简单,但是,有的时候,可能有的小伙伴需要这种效果却苦苦不知道怎么下手,这里,详细记录下,并且,下面给出下载链接地址,供需要的小伙伴下载使用,首先看下具体实现效果吧,是你需要的可以继续往下看

嗯,话不多说了,下面,请看具体怎么实现吧,

1、首先第一步,我们需要资写布局文件pop_cancle.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:background="#50000000"
    android:gravity="center"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="274dp"
        android:layout_height="120dp"
        android:background="@mipmap/cancle_pop_bg"
        android:orientation="vertical">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="70dp"
            android:gravity="center"
            android:text="退出导航后将会返回到首页"
            android:textColor="#3c3c3c"
            android:textSize="16sp" />

        <View
            android:layout_width="match_parent"
            android:layout_height="0.1dp"
            android:background="#e8e8e8" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/tv_back_home"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:text="返回首页"
                android:textColor="#ED4D00" />

            <View
                android:layout_width="0.1dp"
                android:layout_height="match_parent"
                android:background="#e8e8e8" />

            <TextView
                android:id="@+id/tv_cancle"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:text="取消"
                android:textColor="#ED4D00" />
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

里面我尽量将颜色直接写入xml了,有一个资源文件,弹框背景,这里也一并上传,下面就是

呃,因为是白色背景,有点看不清,点击可以看出来是一个图片

2、然后,我们在MainActivity.java里面加入点击效果,弹出对话框,方法具体如下

      先定义全局变量

    private PopupWindow canclePop;

       然后方法:

    /**
     * 点击弹框
     *
     * @param view
     */
    public void showPop() {
        View contentView = null;
        //设置contentView
        if (canclePop == null) {
            contentView = LayoutInflater.from(MainActivity.this).inflate(R.layout.pop_cancle, null);
            canclePop = new PopupWindow(contentView, RelativeLayout.LayoutParams.MATCH_PARENT,
                    RelativeLayout.LayoutParams.MATCH_PARENT, true);
            canclePop.setFocusable(true);
            canclePop.setOutsideTouchable(false);
            canclePop.setClippingEnabled(false);
        } else {
            contentView = canclePop.getContentView();
        }
        TextView tvBackHome = contentView.findViewById(R.id.tv_back_home);
        TextView tvCancle = contentView.findViewById(R.id.tv_cancle);

        tvBackHome.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //点击返回的逻辑
                canclePop.dismiss();
            }
        });
        tvCancle.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                canclePop.dismiss();
            }
        });
        //显示PopupWindow
        View rootview = LayoutInflater.from(MainActivity.this).inflate(R.layout.activity_main, null);
        canclePop.showAtLocation(rootview, Gravity.BOTTOM, 0, 0);
    }

至此,这个简单的Pupopwindow就实现了,具体点击的效果,要怎么执行,根据你们需求,这里不作更多解释,如果还看不懂的,下面,我给出资源下载链接,有需求的可以下载,呃,这个着实有点抱歉,真心不知道为什么,我上传资源的时候,没有更改下载积分的地方,我都没有设置积分下载,结果,愣是默认给我设置了5积分,更改都没地方更改,希望各位见谅,不过,我相信,上面介绍的地方,一定能看懂,就不需要下面的资源了,如果你积分多的话,想看就下载下吧^_^

资源下载Demo

 

 

 

 

 

 

 

 

 

 

©️2020 CSDN 皮肤主题: 护眼 设计师:闪电赇 返回首页