之前想做一个效果,就是从当前界面,点一个按钮过后,从底部慢慢升起一个对话框。
为了方便,我一下想到了 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方法添加如下代码:
ViewdiaView=View.inflate(this,R.layout.dialog,null);
dialog=newDialog(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参考更多的系统主题实现自己需要的风格。
分享到:
相关推荐
或者其他可操作的悬浮的窗口时,你不能影响该activity的正常运行(比如播放器界面的播放画面不停止,动画不停止等),所以就需要考虑到Dialog风格的activity了,关键点就是设置dialog全屏显示,因为根据系统的theme....
android自定义全屏dialog,可以全屏显示图片。
Activity全屏设置 方式1:AndroidManifest.xml 代码如下:<activity android:name=”myAcitivty” android:theme=”@android:style/Theme.NoTitleBar.Fullscreen”> 方式2:代码实现 代码如下:...
有些网友可能知道通过主题比如Theme.Dialog来实现,不过告诉大家设置Activity不再全屏显示的原理。Android Theme也主要是通过定义Style来实现的,实现的原理大家可以直接看Android Framework中的定义,今天给一种更...
Dialog是APP开发中常用的控件,同Activity类似,拥有独立的Window窗口,但是Dialog跟Activity还是有一定区别的,最...全屏Dialog实现方法 这里对象分为两种,一种是针对传统的Dialog,另一种是针对DialogFragment(推荐
Android 部分机型没有物理按键,只有虚拟按键,Activity全屏方法如下: 1、在 setContentView(R.layout.activity_main);之前添加 getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_...
项目中经常需要底部弹出框,这里我整理一下其中我用的比较顺手的一个方式(底部弹出一个横向满屏的dialog)。 效果图如下所示(只显示关键部分): 步骤如下所示: 1.定义一个dialog的布局(lay_share.xml) <?...
几乎所有的 activity 都要 和用户打交道,所以 activity 类创建了一个窗口,可以通过 setContentView(View)接口把 UI 放到 activity 创建的窗口上,当 activity 指向全屏窗口时,也可以用其他方式实现:作为漂浮窗口...
图片状态栏+彩色导航栏,全屏图片,访QQ状态栏和标题栏渐变色,结合侧滑返回,fragment,Dialog,Tablayout,WebView和Activity结合使用等,以及讲解和解决白色状态栏的原因
图片旋转 获取手机号码 格式化string.xml 中的字符串 android设置全屏的方法 设置Activity为Dialog的形式 ....
MyAppStudyMy android study...Theme.Dialog : Activity显示为对话框模式Theme.NoTitleBar : 不显示应用程序标题栏Theme.NoTitleBar.Fullscreen : 不显示应用程序标题栏,并全屏Theme.Light : 背景为白色Theme.Light.No
图片状态栏+彩色导航栏,全屏图片,访QQ状态栏和标题栏渐变色,结合侧滑返回,fragment,Dialog,Tablayout,WebView和Activity结合使用等,以及讲解和解决白色状态栏的原因
android:theme=”@android:style/Theme.Dialog” : Activity显示为对话框模式 android:theme=”@android:style/Theme.NoTitleBar” : 不显示应用程序标题栏 android:theme=”@android:style/Theme.NoTitleBar....
|--屏幕之Activity全屏 |--屏幕之横竖屏切换 |--屏幕之调节屏幕亮度 |--屏幕相关之Display类获取屏幕尺寸和分辨率 |--屏幕适配之ScrollView |--屏幕适配之像素dp和px之间转换 |--工具类之Log的封装类 |--工具类之...
有的是设置全屏StatusBar透明,然后再动态插入一个大小一致的View来占位,达到设置状态栏颜色的目的,因此,如果单纯的在DecorView中来插入加载布局,难以控制加载页面的MarginTop,可能会遮盖到Toolbar,所以退而求...
选择器是基于activity,在屏幕较小的设备上全屏显示,而在较大的屏幕上则显示成dialog的方式,这个特性是系统主题中做到的,因此为activity选择一个正确的主题至关重要。 使用说明: 该库的核心思想是做到可扩展,...
首先,从图片缩略界面跳转到图片详情页面,应该是从一个Activity跳转到另外一个Activity,应该图片详情页面也有很多操作,用View或者Dialog不是很好。所以现在难点就是,如何使得前一个界面的ImageView在另外一个...
全屏显示 this.requestWindowFeature(Window.FEATURE_NO_TITLE); this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 横竖屏显示 private void...
2.1.10、Dialog风格的Activity 23 2.1.11、横竖屏切换不销毁当前Activity 23 2.2、INTENT RECEIVER 25 2.3、SERVICE 26 2.3.1、什么是Service 26 2.3.2、如何使用Service 27 2.3.3、Service的生命周期 32 2.3.4、...
2.1.10、Dialog风格的Activity 23 2.1.11、横竖屏切换不销毁当前Activity 23 2.2、INTENT RECEIVER 25 2.3、SERVICE 26 2.3.1、什么是Service 26 2.3.2、如何使用Service 27 2.3.3、Service的生命周期 32 2.3.4、...