zoukankan      html  css  js  c++  java
  • 自定义Dialog

    应用场景:自定义Dialog

    效果图:

    1.创建Dialog对象

    代码如下:

    Dialog  dialog = new Dialog(CustomDialogActivity.this, R.style.CustomDialog);

    注:

    创建Dialog对象时,需传入两个参数:

    第一个参数是:Activity对象;

    第二个参数是:自定义的对话框style,它指向的是values文件夹下styles.xml文件中的如下代码:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <!-- 自定义Dialog -->
        <style
            name="CustomDialog"
            parent="@android:Theme.Dialog">
            <!--windowFrame框为无 -->
            <item
                name="android:windowFrame">@null</item>
            <!-- 没有标题栏 -->
            <item
                name="android:windowNoTitle">true</item>
            <!-- 除去背景 -->
            <item
                name="android:windowBackground">@null</item>
            <!--是否浮现在activity之上 -->
            <item
                name="android:windowIsFloating">true</item>
            <!-- 是否半透明 -->
            <item
                name="android:windowIsTranslucent">false</item>
            <!-- 去掉覆盖层 -->
            <item
                name="android:windowContentOverlay">@null</item>
            <!-- 设置背景颜色 -->
            <item
                name="android:background">#262626</item>
        </style>
    </resources>

    2.layout文件夹下创建dialog_view.xml文件

    代码如下:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#000000">
        <TextView
            android:id="@+id/promptTv"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="15.0dip"
            android:gravity="center"
            android:textSize="16.0sp"
            android:textColor="#FFFFFF" 
            android:text="@string/promptText"/>
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:paddingTop="20.0dip"
            android:paddingBottom="20.0dip"
            android:gravity="center">
            <Button
                android:id="@+id/dialog_positive_button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" 
                android:text="@string/ok"/>
            <Button
                android:id="@+id/dialog_negative_button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" 
                android:text="@string/cancel"/>
        </LinearLayout>
    </LinearLayout>

    注:然后,将布局文件设置到Dialog

    代码如下:

    dialog.setContentView(R.layout.dialog_view);// 为对话框设置自定义布局

    3.Window对象进行自定义设置

    代码如下:

    Window window = dialog.getWindow();// 获取Window对象
    window.setGravity(Gravity.CENTER);// 居中显示
    window.setWindowAnimations(R.style.dialogWindowAnim); // 设置窗口动画
    window.setLayout(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);

    注:对话框动画实现代码如下(代码在values文件夹下styles.xml文件中):

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    <!-- Dialog动画 -->
        <style
            name="dialogWindowAnim"
            parent="android:Animation">
            <!-- 进入时的动画 -->
            <item
                name="android:windowEnterAnimation">@anim/dialog_enter_anim</item>
            <!-- 退出时的动画 -->
            <item
                name="android:windowExitAnimation">@anim/dialog_exit_anim</item>
        </style>
    </resources>

    4.最后调用show方法显示Dialog

    代码如下:

    dialog.show();
  • 相关阅读:
    HTML <h1>
    HTML <body> 标签
    如何挑选深度学习 GPU?
    视频动作定位的分层自关注网络:ICCV2019论文解析
    三维点云去噪无监督学习:ICCV2019论文分析
    摄像头定位:ICCV2019论文解析
    深度学习扫地机器人
    细粒度语义分割:ICCV2019论文解析
    目标形体形状轮廓重建:ICCV2019论文解析
    2-2.5-3D的室内场景理解
  • 原文地址:https://www.cnblogs.com/renqingping/p/CustomDialog.html
Copyright © 2011-2022 走看看