jus*_*inl 39 android overlay dialog popup
我想完全重新设置Android中的默认对话框组件.具体来说我想这样做:
将半透明叠加背景从默认黑色更改为半透明白色.
通过删除默认的窗口框架边框来更改"对话"窗口,并将其替换为XML中定义的布局(它只是带有浮动按钮的无边框图形.没有实际框架.)
我看过有关在对话框中创建自定义布局的教程(例如http://www.helloandroid.com/tutorials/how-display-custom-dialog-your-android-application),但我还没有看到任何内容关于改变叠加的颜色和/或完全定制弹出的对话窗口并将其更多地转换为没有"窗口"的叠加.
jus*_*inl 83
我已经解决了这个问题,并使用以下步骤创建了我自己的自定义弹出式叠加层,其中包含自定义彩色半透明叠加背景:
1 - 在res/values /文件夹中创建一个新的xml文件,并将其命名为styles.xml
2 - 您可以在此处定义对话框属性.这是我的样子.如果要替换屏幕上显示的默认半透明黑色叠加层,则必须设置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>
Run Code Online (Sandbox Code Playgroud)
3 - 返回java代码,在创建对话框对象时,使用传递上下文和主题的构造函数.例如.myDialog = new Dialog(this, R.style.CustomDialogTheme); (CustomDialogTheme是我在步骤2中的styles.xml中指定的name属性)
4 - 只需将对话框对象内容视图设置为您希望对话框看起来的任何布局.例如.myDialog.setContentView(R.layout.my_custom_overlay);
如果希望对话框出现在屏幕中央,请将其根元素设置android:layout_gravity为center
pmk*_*mko 20
这对我很有用,但是缺少关闭对话框的方法.如果您的自定义布局中有一个按钮来关闭它,下面是如何添加侦听器并关闭对话框窗口.
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();
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
43468 次 |
| 最近记录: |