Android activity切换动画 以及 Dialog显示动画


一:如从底部向上移动显示,向底部向下移动退出的Dialog动画效果

style文件:


    
    
    
	


还可以使用属性0.6控制背景模糊度!

软键盘自动弹出问题:

activity可以通过manifest.xml文件配置

android:windowSoftInputMode="stateVisible"属性,才能自动显示软键盘!

但是,Dialog显示时,自动显示软键盘需要设置:

mDialog.getWindow().setSoftInputMode(

WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);

代码中使用:

Dialog mDialog = new Dialog(context, R.style.BottomDialogStyle);
然后可以控制dialog的宽度:

WindowManager.LayoutParams lParams = mDialog.getWindow().getAttributes();
lParams.width = AppUtils.getScreenWidth(context)/3 * 2;
mDialog.onWindowAttributesChanged(lParams);
mDialog.setCancelable(true);
mDialog.setCanceledOnTouchOutside(true);
mDialog.show();



二:Activity进入和退出的动画效果


<1>通过在AndroidManifest.xml文件中设置activity或者application的theme属性设置动画

注意:如果在activity中设置,需要同时设置当前activity和需要启动的activity的theme属性。

style文件:

  
  

  
备注说明:

activityOpenEnterAnimation表示:第二个Activity进入时的动画(上例中为:从右侧进入)

activityOpenExitAnimation表示:第一个Activity即当前Activity退出时的动画(上例中为:保持不动)

activityCloseEnterAnimation表示:第一个Activity即刚才退出的Activity进入时的动画(上例中为:保持不动)

activityCloseExitAnimation表示:第二个Activity即刚才进入的Activity退出时的动画(上例中为:向右侧退出)

附上anim文件夹对应xml文件:

sliding_in_from_right.xml:





sliding_stay_anim.xml:





然后在AndroidManifest.xml文件对应activity中设置theme属性即可!


<2>通过Activity中的overridePendingTransition(int enterAnim, int exitAnim)方法设置动画

官方解释:

Call immediately after one of the flavors of startActivity(Intent) or finish to specify an explicit transition animation to perform next.

Parameters:
enterAnim A resource ID of the animation resource to use for the incoming activity. Use 0 for no animation.
exitAnim A resource ID of the animation resource to use for the outgoing activity. Use 0 for no animation.

缺陷:finish时,界面点击返回按钮可以执行动画,但是通过返回键不能执行动画,需要设置监听,手动finish。

附件(各种动画参考案例):http://download.csdn.net/detail/wenbitianxiafeng/7864541


三:Activity依据手势向右滑动finish动画



参考附件地址:http://download.csdn.net/detail/wenbitianxiafeng/7882373


四:Android 5.0 Lollipop中新的Activity过渡效果介绍

使用Lollipop中最新的共享元素过渡动画作为两个activity的过渡动画。

请注意这时你的项目的最高支持版本(同时编译项目使用的最低版本)至少为Android API 21。

这个动画在低于Lollipop版本的系统中会被忽略从而不执行。 不幸的是,由于性能上的原因,AppCompat兼容包没有为这些动画提供完全的向下兼容。

参考博客地址:

http://code.tutsplus.com/zh-hans/tutorials/introduction-to-the-new-lollipop-activity-transitions--cms-23711





你可能感兴趣的:(Android动画系列)