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();
  • 相关阅读:
    gcc 编译器常用的命令行参数一览
    linux下源代码分析和阅读工具比较
    Linux系统——C/C++开发工具及环境搭建
    GDB调试——经验总结
    gdb调试的艺术——Debug技巧
    命令__cp、scp(Secure Copy)
    常用shell脚本命令
    命令__查找、替换、删除
    UltraEdit 删除空行
    命令__shell数字-字符串比较
  • 原文地址:https://www.cnblogs.com/zhaolizhe/p/6924047.html
Copyright © 2011-2022 走看看