自定义Window进入和退出效果(转)

看了android的源代码和资源文件,终于明白如何去修改设置Dialog和Activity的进入和退出效果了。

设置Dialog首先通过getWindow()方法获取它的窗口,

然后通过getAttributes()方法获得window的WindowManager.LayoutParams lp,

lp有个公共属性windowAnimations, 只要把要实现的animation的id赋值给它就可以了。

问题是这个animation应该怎么写呢,

研究发现,窗口进入和退出的效果分别是通过@android:windowEnterAnimation和@android:windowExitAnimation两个item设定的,比如进入时的anim是@anim/dialog_enter, 退出的是@anim/dialog_exit, 则声明一个style为:

<style name="mydialog">

<item name="@android:windowEnterAnimation">@anim/dialog_enter</item>

<item name="@android:windowExitAnimation">@anim/dialog_exit</item>

</style>

然后把这个style的id传给lp.windowAnimations就行了。

Activity的进入和退出效果可以通过@android:activityOpenEnterAnimation,@android:activityOpenExitAnimation,@android:activityCloseEnterAnimation,@android:activityCloseExitAnimation这几个item设定,

第一个表示新的activity创建进入效果,第2个表示activity还没有finish()下退出效果,第3个表示上一个activity返回进入效果,第4个表示的是activity finish()之后退出效果...(好似有点乱了)。

具体设置参考如下:

<style name="myact">

<item name="@android:activityOpenEnterAnimation">@anim/act_enter</item>

<item name="@android:activityOpenExitAnimation">@anim/act_exit</item>

<item name="@android:activityCloseEnterAnimation">@anim/act_enter</item>

<item name="@android:activityCloseExitAnimation">@anim/act_exit</item>

</style>

<style name="mytheme" parent="@android:style/Theme">

<item name="@android:windowAnimationStyle">@style/myact</item>

</style>

然后把mytheme这个style作为Activity的theme就行了,还有一个办法就是通过Acitvity获取它的window, 然后和设置dialog一样进行设置,因为归根到底是设置Window的layoutparams里的windowAnimations值。

所以Activity的进入和退出效果也可以通过@android:windowEnterAnimation和@android:windowExitAnimation这两个item设定。

http://ningtukun.blog.163.com/blog/static/186541445201361793929383/

时间: 2024-08-07 04:11:50

自定义Window进入和退出效果(转)的相关文章

Android 设定activity的进入和退出效果

看了android的源代码和资源文件,终于明白如何去修改设置Dialog和Activity的进入和退出效果了.设置Dialog首先通过 getWindow()方法获取它的窗口,然后通过getAttributes()方法获得window的 WindowManager.LayoutParams lp, lp有个公共属性windowAnimations, 只要把要实现的animation的id赋值给它就可以了.问题是这个animation应该怎么写呢,研究发现,窗口进入和退出的效果分别是通过 @and

WPF一步步实现完全无边框自定义Window(附源码)

原文:WPF一步步实现完全无边框自定义Window(附源码) 在我们设计一个软件的时候,有很多时候我们需要按照美工的设计来重新设计整个版面,这当然包括主窗体,因为WPF为我们提供了强大的模板的特性,这就为我们自定义各种空间提供了可能性,这篇博客主要用来介绍如何自定义自己的Window,在介绍整个写作思路之前,我们来看看最终的效果. 图一 自定义窗体主界面 这里面的核心就是重写Window的Template,针对整个开发过程中出现的问题我们再来一步步去剖析,首先要看看我们定义好的样式 <Resou

window.confirm()方法,效果是在页面上弹出对话框

window.confirm()方法是有返回值的,返回值为true,false两种情况 window.confirm()方法在页面上显示带确定"和"取消"按钮的提示信息,当点"确定"的时候,返回值为true;当点"取消"按钮的时候,返回值为false. window.confirm()方法,效果是在页面上弹出对话框

自定义Toast、程序退出时Toast也退出、Toast的用法

http://blog.csdn.net/wangqilin8888/article/details/7464806 当我们在一个应用中用到Toaster来做为提示时,发现这样一个问题,当某个条件服合时,会弹出Toaster的对话框,不停地执行这个条件,会不停进行Toaster.show的显示,执行几次就现示几次,即使这个应用程序退出也会不停地Toast.show地显示,这样一来会给用户带来一种不好体验.当我们将应用程序退出了,就不应该Toast.show显示了. 我们可以在应用程序退出onDe

自定义Window 服务

自定义window 服务 开发到使用的流程: 1.完成对应的代码之后(代码在底下),右键MyService.cs 添加安装程序 2.添加window服务安装程序打开Service1.cs[设计]页面,点击右键,选择[添加安装程序],会出现serviceInstaller1和serviceProcessInstaller1两个组件将serviceProcessInstaller1的Account属性设为[LocalSystem], serviceInstaller1的StartType属性设为[A

Android UI效果实现——Activity滑动退出效果

更新说明: 1.在QQ网友北京-旭的提醒下,在SlideFrame的initilize方法中添加了focusable.focusableInTouch.clickable的状态设置,否则会导致部分情况下无法滑动,感谢! 一.使用说明 使用方法很简单,只有一个类HorizontalActivity,继承自FragmentActivity类,实现了contentView的滑动事件触发和动画效果,要在自己的代码里实现,方法两种: 1.如果对Activity没特殊要求,直接继承HorizontalAct

WPF window 子窗口反馈效果(抖动/阴影渐变)

原文:WPF window 子窗口反馈效果(抖动/阴影渐变) 当设置了owner的子窗口显示后,点击子窗口外部,需要一种反馈机制(反馈动画). 实现: 1.触发源 每次点击子窗口外部,即母窗口时,事件捕捉如下 HwndSource hwndSource = PresentationSource.FromVisual(this.Owner) as HwndSource;//窗口过程 hwndSource?.AddHook(WndProc); 也可以调用WindowInteropHelper,获取母

[WPF自定义控件库]为Form和自定义Window添加FunctionBar

1. 前言 我常常看到同一个应用程序中的表单的按钮----也就是"确定"."取消"那两个按钮----实现得千奇百怪,其实只要使用统一的Style起码就可以统一按钮的大小,而我喜欢更进一步将"确定"."取消"或其它按钮封装进一个自定义控件里. 这篇文章介绍了另一种ItemsControl的实现方式,并使用它为表单及自定义Window添加常用的按钮及其它功能. 2. 为Form添加FunctionBar 本来打算派生自ToolBa

通过自定义window来实现提示框效果

#import <UIKit/UIKit.h>#import <Foundation/Foundation.h> @interface ZMStatuBarHud : NSObject//成功时候显示消息+ (void)showSuccess:(NSString *)msg;//失败的时候显示消息+ (void)showError:(NSString *)msg;//加载的时候显示 调用此方法想要隐藏需自己调用hide方法+ (void)showLoading:(NSString