一、自定义对话框

  1. 自定义.xml布局
  2. 获取LayoutInflater对象
  3. 调用inflate()方法获取View对象
  4. 调用Builder对象的setView()方法设置View
  5. 获取输入内容或者监听点击事件等
Dialog dialog;
    public void customBtnClick(View view){
        LayoutInflater inflater = LayoutInflater.from(this);
        View myView = inflater.inflate(R.layout.activity_custom_dialog, null);
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setView(myView);
        myView.findViewById(R.id.custom_dialog_btn).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                dialog.dismiss();
                Toast.makeText(custom_dialog01.this, "点击了确定", Toast.LENGTH_SHORT).show();
            }
        });
        dialog = builder.create();
        dialog.show();
    }
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:background="@color/shadow"
        >


    <LinearLayout android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:background="@color/white"
                  android:orientation="vertical">

        <TextView android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:background="@color/blue"
                  android:textSize="20sp"
                  android:textStyle="bold"
                  android:textColor="@color/white"
                  android:gravity="center_horizontal"
                  android:paddingTop="5dp"
                  android:paddingBottom="5dp"
                  android:text="公告"/>
        <TextView android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:text="恭喜您恭喜您,获得我们厂家送出的宝马电动车一辆恭喜您
\n1. 获得我们厂家送出的宝马电动车一辆恭喜您,
\n2. 获得我们厂家送出的宝马电动车一辆恭喜您,
\n3. 获得我们厂家送出的宝马电动车一辆恭喜您,
\n4. 获得我们厂家送出的宝马电动车一辆,获得我们厂家送出的宝马电动车一辆。
赶紧来店领取。"
                  android:paddingLeft="30dp"
                  android:paddingRight="30dp"
                  android:paddingTop="20dp"
                  android:textSize="16sp"
                  android:paddingBottom="20dp"
                  android:lineHeight="25dp"
                  android:background="@color/white"
                  android:gravity="left"
                  android:textColor="#333333"/>
        <Button
                android:id="@+id/custom_dialog_btn"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="确定"
                android:textColor="@color/white"
                android:layout_gravity="center_horizontal"
                android:layout_marginTop="10dp"
                android:layout_marginBottom="10dp"
                android:background="@color/blue"/>

    </LinearLayout>


</LinearLayout>

image.png

二、使用PopupWindow的实现步骤

    1. 自定义.xml布局
    1. 获取LayoutInflater对象
    1. 调用inflate()方法和获取View对象
    1. 创建PopupWindow对象
    1. 调用PopupWindow的showAsDropDown或者showAsLocation方法显示对话框窗口

三、Activity变Dialog样式,去除标题

<style name="MyDialogII" parent="@style/Theme.AppCompat.Dialog.Alert">
        <item name="android:windowBackground">@null</item>
        <item name="android:windowFrame">@null</item>
        <!--无标题-->
        <item name="android:windowNoTitle">true</item>
        <!--这个无标题才可以的-->
        <item name="windowNoTitle">true</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:windowContentOverlay">@null</item>

        <item name="android:windowIsTranslucent">false</item>
        <!--背景变暗-->
        <item name="android:backgroundDimEnabled">true</item>
        <!--全屏,无标题-->
        <item name="android:windowFullscreen">true</item>
    </style>

阿南
20 声望7 粉丝