dialog style 的 activity 的全屏设置 (dialog适用)

来源:互联网 发布:万方论文查重软件 编辑:程序博客网 时间:2024/05/17 04:31

        之前想做一个效果,就是从当前界面,点一个按钮过后,从底部慢慢升起一个对话框。


        为了方便,我一下想到了 dialog style的activity。


        但是发现设置了 activity的style为 dialog之后,他的大小比正常activity要小一圈,播放动画从底部升起的时候,就从这个小了一圈的底部升起,也就是从整个屏幕的中间升起。


        后来自定义了一个如下style,发现也不行。

<?xml version="1.0" encoding="utf-8"?><resources>    <style name="testStyle" parent="@android:style/Theme.Dialog" >      <item name="android:windowBackground">@color/transparent</item>  <item name="android:windowFrame">@null</item>  <item name="android:backgroundDimEnabled">true</item>  <item name="android:windowIsTranslucent">true</item>  <item name="android:windowNoTitle">true</item>  <item name="android:windowFullscreen">true</item>    </style></resources>

        后来发现,重点就是在这一句:parent="@android:style/Theme.Dialog"。去掉之后就可以全屏了,应该是他从这个style继承过来的时候,就已经限制了大小。




另外附一篇关于这个dialog的说明,转自:http://chen2337.blog.163.com/blog/static/34039920201111751833693/


res/values文件夹新建名为 dialogStyle.xml的resources样式文件,具体代码如下:

<?xml version="1.0" encoding="utf-8"?><resources>    <style name="dialog" parent="@android:style/Theme.Dialog">        <item name="android:windowFrame">@null</item>        <item name="android:windowIsFloating">true</item>        <item name="android:windowIsTranslucent">false</item>        <item name="android:windowNoTitle">true</item>        <item name="android:windowBackground">@drawable/dia_bg</item>        <item name="android:backgroundDimEnabled">false</item>    </style></resources>

这个样式文件的说明如下

parent="@android:style/Theme.Dialog" :在系统Dialog样式基础上,相当于继承系统样式

<item name="android:windowFrame">@null</item> :Dialog的windowFrame框为无

<item name="android:windowIsFloating">true</item>:是否浮现在activity之上


       <item name="android:windowIsTranslucent">false</item>:是否半透明
       <item name="android:windowNoTitle">true</item>:是否显示title
       <item name="android:windowBackground">@drawable/dia_bg</item>:设置dialog的背景

 <item name="android:backgroundDimEnabled">true</item>背景是否模糊显示
        <item name="android:backgroundDimAmount">0.6</item>

接下来写java代码把这个半透明弹窗显示出来,在AuthorizeActivity的onCreate方法添加如下代码:


View diaView=View.inflate(this, R.layout.dialog, null);
dialog=new Dialog(AuthorizeActivity.this,R.style.dialog);
dialog.setContentView(diaView);
dialog.show();
或者在Mainfest.xml中设置android:theme="@style/dialog"



经验:

可以到Android源码目录frameworks\base\core\res\res\values\styles.xml & themes.xml参考更多的系统主题实现自己需要的风格。



原创粉丝点击