将activity变成dialog风格

其实很简单:

只是把activity的theme设置成dilog形式的:

<activity android:name=".ActivityPackage.DatePickerActivity"    android:theme="@style/DefaultFullScreenDialogAnimation"></activity>
 
下面是DefaultFullScreenDialogAnimation:
 
<style name="DefaultFullScreenDialogAnimation" parent="@android:style/Theme.Dialog">    <item name="android:windowFrame">@null</item>    <item name="android:windowNoTitle">true</item>    <item name="android:windowIsFloating">true</item>    <item name="android:windowIsTranslucent">true</item>    <item name="android:windowAnimationStyle">@style/DialogIOSAnimation</item>    <item name="android:backgroundDimEnabled">true</item>    <item name="android:windowFullscreen">true</item>    <item name="android:adjustViewBounds">true</item>    <item name="android:windowBackground">@android:color/transparent</item>//将背景设置成透明的    <item name="android:windowContentOverlay">@null</item>    <item name="android:windowCloseOnTouchOutside">true</item>//设置窗体外面允不允许点击</style>
下面是DialogIOSAnimation:
 
<style name="DialogIOSAnimation" parent="@android:style/Animation.Dialog">    <item name="android:windowEnterAnimation">@anim/dialog_ios_scale_in</item>    <item name="android:windowExitAnimation">@anim/dialog_ios_scale_out</item></style>
 
下面是出现的效果dialog_ios_scale_in:
 
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"    android:duration="200" >   <scale          android:interpolator="@android:anim/decelerate_interpolator"

android:fromXScale="1.2"          android:toXScale="1.0"

android:fromYScale="1.2"          android:toYScale="1.0"

android:pivotX="50%"          android:pivotY="50%"

/>       <alpha           android:interpolator="@android:anim/decelerate_interpolator"

android:fromAlpha="0.0"        android:toAlpha="1.0"        />

</set>
 
下面是淡出效果dialog_ios_scale_out:
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"    android:duration="200" >   <scale          android:interpolator="@android:anim/accelerate_interpolator"

android:fromXScale="1.0"          android:toXScale="1.2"

android:fromYScale="1.0"          android:toYScale="1.2"

android:pivotX="50%"          android:pivotY="50%"

/>       <alpha           android:interpolator="@android:anim/accelerate_interpolator"

android:fromAlpha="0.5"        android:toAlpha="0.0"        />

</set>
 
这样就是先了把activity的风格转换成了dialog的风格,但是如果你还想让这个activity的宽度与屏幕一样大小的话,还需要在activity里面进行设置:
 
/*设置dialog的宽与屏幕想等*/WindowManager windowManager = getWindowManager();Display display = windowManager.getDefaultDisplay();WindowManager.LayoutParams lp = getWindow().getAttributes();lp.width = WindowManager.LayoutParams.MATCH_PARENT;lp.height = WindowManager.LayoutParams.MATCH_PARENT;getWindow().setAttributes(lp);
 
这里是一种自定义的style风格,具体是需要什么样的风格由自己去设置,这里只是给予参考。
时间: 2024-08-08 09:41:47

将activity变成dialog风格的相关文章

Android应用Activity、Dialog、PopWindow、Toast窗体加入机制及源代码分析

[工匠若水 http://blog.csdn.net/yanbober 转载烦请注明出处.尊重劳动成果] 1 背景 之所以写这一篇博客的原因是由于之前有写过一篇<Android应用setContentView与LayoutInflater载入解析机制源代码分析>.然后有人在文章以下评论和微博私信中问我关于Android应用Activity.Dialog.PopWindow载入显示机制是咋回事,所以我就写一篇文章来分析分析吧(本文以Android5.1.1 (API 22)源代码为基础分析),以

Android中自定义Activity和Dialog的位置大小背景和透明度等demo

1.自定义Activity显示样式 先在res/values下建colors.xml文件,写入: [xhtml] view plaincopy <?xml version="1.0" encoding="utf-8"?> <resources> <!-- 设置透明度为56%(9/16)左右 --> <color name="transparent">#9000</color> </

[转]Android有趣的全透明效果--Activity及Dialog的全透明(附android系统自带图标大全

原文:http://blog.csdn.net/sodino/article/details/5822147 1.Activity全透明 同学zzm给了这个有趣的代码,现在公布出来. 先在res/values下建colors.xml文件,写入: <? xml   version = "1.0"   encoding = "UTF-8" ?>    < resources >        < color   name = "t

Android中自定义Activity和Dialog的位置大小背景和透明度等

1.自定义Activity显示样式 先在res/values下建colors.xml文件,写入: view plainprint? 1. <?xml version="1.0" encoding="utf-8"?>   2. <resources>   3.     <!-- 设置透明度为56%(9/16)左右 -->   4.     <color name="transparent">#9000

Android应用Activity、Dialog、PopWindow、Toast窗口添加机制及源码分析

1  背景 之所以写这一篇博客的原因是因为之前有写过一篇<Android应用setContentView与LayoutInflater加载解析机制源码分析>, 然后有人在文章下面评论和微博私信中问我关于Android应用Activity.Dialog.PopWindow加载显示机制是咋回事,所以我就写一 篇文章来分析分析吧(本文以Android5.1.1 (API 22)源码为基础分析),以便大家在应用层开发时不再迷糊. PS一句:不仅有人微博私信我这个问题,还有人问博客插图这些是用啥画的,这

Android应用Activity、Dialog、PopWindow窗口显示机制及源码分析

[工匠若水 http://blog.csdn.net/yanbober 转载烦请注明出处,尊重劳动成果] 1 背景 之所以写这一篇博客的原因是因为之前有写过一篇<Android应用setContentView与LayoutInflater加载解析机制源码分析>,然后有人在文章下面评论和微博私信中问我关于Android应用Dialog.PopWindow.Toast加载显示机制是咋回事,所以我就写一篇文章来分析分析吧(本文以Android5.1.1 (API 22)源码为基础分析),以便大家在应

【Android】 activity的dialog样式

<!-- activity无黑边 --> <!-- activity可滑动 --> <!-- activity透明 --> <!-- activity无标题 --> <!-- activity不变暗 --> <style name="dialog" parent="@android:style/Theme.Dialog"> <item name="android:windowFr

WindowManager--Toast、activity、dialog的实际渲染者

刚刚利用WindowManager写了个对话框,如下图.WindowManager是视图实际的渲染者,Toast.activity.dialog都是通过它进行显示的.利用它我们可以很容易的实现诸如:立体UI.悬浮效果.引导页中的app使用说明等等. WindowManager是Android中一个重要的服务(Service ).WindowManager Service 是全局的,是唯一的.它将用户的操作,翻译成为指令,发送给呈现在界面上的各个Window.Activity会将顶级的控件注册到

Android 自定义Activity的Dialog

第一步: 定义layout.xml文件 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/transparent"