之前想做一个效果,就是从当前界面,点一个按钮过后,从底部慢慢升起一个对话框。
为了方便,我一下想到了 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,可以全屏显示图片。
首先我们可能会首先想到的是在XML布局文件中设置android:layout_height=”wrap_content”属性,让activity的高度自适应,显然这还不行,我们还需要为其DialogActivity设置自定义一个样式 <style name=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、...