代码之家  ›  专栏  ›  技术社区  ›  justinl

如何在Android中创建一个完全定制的对话框/弹出窗口(更改覆盖颜色和对话框窗口布局)

  •  39
  • justinl  · 技术社区  · 16 年前

    我想完全重新皮肤默认的对话组件在Android。具体来说,我想这样做:

    • 将半透明覆盖背景从默认的黑色更改为半透明白色。

    • 更改对话窗口 并用一个布局替换它 在XML中定义(它只是 浮动的无边界图形 按钮。没有实际帧。)

    我看过关于在对话框中为创建自定义布局的教程(例如。 http://www.helloandroid.com/tutorials/how-display-custom-dialog-your-android-application

    2 回复  |  直到 16 年前
        1
  •  84
  •   ramaral    10 年前

    1-在res/values/文件夹中创建一个新的xml文件并将其命名样式.xml

    windowIsFloating 设置为false,并将布局的背景修改为所需的任何颜色。下面是我使用过的文件:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <style name="CustomDialogTheme" parent="@android:style/Theme.Dialog">
            <item name="android:windowBackground">@color/transparent_white</item>
            <item name="android:windowIsFloating">false</item>
            <item name="android:windowNoTitle">true</item>
        </style>
    </resources>
    

    myDialog = new Dialog(this, R.style.CustomDialogTheme);

    4-只需将对话框对象内容视图设置为希望对话框看起来像的任何布局。如。 myDialog.setContentView(R.layout.my_custom_overlay); 如果希望对话框显示在屏幕中心,请设置其根元素的 android:layout_gravity 到 center

        2
  •  20
  •   pmko    15 年前

    final Dialog d = new Dialog(this,R.style.CustomDialogTheme);
    d.setContentView(R.layout.custom_dialog);
    d.show();
    
    Button close_btn = (Button) d.findViewById(R.id.close_btn);
    close_btn.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            d.dismiss();
        }
    });
    
    推荐文章