android切换动画
‘壹’ android中如何进行多个view进行动画切换
这个首选需要你的手机是四核及以上,这是硬件要求,再者就是你每次打开视频或者游戏界面看看是否有没有在手机右侧有个小窗口等类似字眼,点击下,即可。
‘贰’ Android动画之ViewPropertyAnimator(专用于view的属性动画)
属性动画对比原来的视图动画有很多的优点,属性动画可以对所有的对象做动画操作,但Android开发中需要做动画最多的还是View,如果只是对一个view做动画,很少的几个属性还行,如果是对同一个view的十几个属性同时做动画,相信属性动画的写法是比较繁琐的。ViewPropertyAnimator从名字就可以看出是专用于View的属性动画,在API12被提供。ViewPropertyAnimator专用于操作View动画,语法更加简洁,使用更加方便。
developer: https://developer.android.google.cn/reference/android/view/ViewPropertyAnimator
如何获取ViewPropertyAnimator 对象:
ViewPropertyAnimator 没有构造函数,通过View.animate()方法可以方便的获取ViewPropertyAnimator 对象,此时获取的动画对象就专用于操作当前view。
setDuration(); //设置动画时长
setInterpolator(); //设置插值器
setStartDelay(); //设置延迟开始时间
start(); //立刻开始动画
cancel(); //取消动画
明显看到图片先往下走了一段,然后向左的动画才开始执行。
链式操作
ViewPropertyAnimator viewPropertyAnimator = gongxiang.animate().setDuration(2000).translationY(300).scaleX(0.5f);
以上函数的执行,会导致相同动画的cancle,以上函数都是除了坐标相关都是以view左上角为坐标原点。
方法都比较简单,下面距几个列子:
首先利用translationX,translationXBy来区分By的意义:
ViewPropertyAnimator viewPropertyAnimator = gongxiang.animate().setDuration(3000).translationY(300);
ViewPropertyAnimator viewPropertyAnimator = gongxiang.animate().setDuration(3000).translationYBy(300);
translationYBy 可以多次移动View,translationY多次执行没有效果。
ViewPropertyAnimator viewPropertyAnimator = gongxiang.animate().setDuration(3000).x(100).y(100);
ViewPropertyAnimator viewPropertyAnimator = gongxiang.animate().setDuration(2000).rotation(270);
据观察withEndAction相当于动画开始,withStartAction相当于动画结束。
可以看到可以添加setUpdateListener监听,但无法通过这个监听函数监听到当前动画的信息,所以这个监听函数可能用处不大。
Animation动画概述和执行原理
Android动画之补间动画TweenAnimation
Android动画之逐帧动画FrameAnimation
Android动画之插值器简介和系统默认插值器
Android动画之插值器Interpolator自定义
Android动画之视图动画的缺点和属性动画的引入
Android动画之ValueAnimator用法和自定义估值器
Android动画之ObjectAnimator实现补间动画和ObjectAnimator自定义属性
Android动画之ObjectAnimator中ofXX函数全解析-自定义Property,TypeConverter,TypeEvaluator
Android动画之AnimatorSet联合动画用法
Android动画之LayoutTransition布局动画
Android动画之共享元素动画
Android动画之ViewPropertyAnimator(专用于view的属性动画)
Android动画之Activity切换动画overridePendingTransition实现和Theme Xml方式实现
Android动画之ActivityOptionsCompat概述
Android动画之场景变换Transition动画的使用
Android动画之Transition和TransitionManager使用
Android动画之圆形揭露动画Circular Reveal
Android 动画之 LayoutAnimation 动画
Android动画之视图动画的缺点和属性动画的引入
‘叁’ 如何设定Android Activity间切换时的动画
如果是应用全局的动画,则在style文件里面定义
<style name="Animation_Activity" parent="@android:style/Animation.Activity">
<item name="android:activityOpenEnterAnimation">@anim/right_in</item>
<item name="android:activityOpenExitAnimation">@anim/left_out</item>
<item name="android:activityCloseEnterAnimation">@anim/left_in</item>
<item name="android:activityCloseExitAnimation">@anim/right_out</item>
</style>
right_in这些为动画文件
然后在你程序的theme里面定义如下
<style name="AppTheme" parent="AppBaseTheme">
<item name="android:windowNoTitle">true</item>
<item name="android:windowAnimationStyle">@style/Animation_Activity</item>
</style>
如果只是想用一次,则是在activity跳转时添加如下代码
overridePendingTransition(R.anim.zoom_in, R.anim.zoom);
//R.anim.zoom_in, R.anim.zoom为动画文件
‘肆’ android中ImageView怎么实现两个图片切换时的动画如题 谢谢了
实现动画的监听事件时,在onAnimationEnd方法里面先判断一下,如果显示的是第一张图片就切换成第二张图片,如果显示的是第二张图片,就切换成第三张图片,之后再用view.startAnimation();
‘伍’ 关于设置 android:parentActivityName 后过渡动画的问题
首先,先简单介绍一下 android:parentActivityName 。
简单来说就是在当前 Activity 的标题栏左上角加一个返回按钮,点击后自动返回设置的 Activity 而不是回到之前的 Task。
比如为 TestActivity 设置:
<activity android:name=".TestActivity"
android:parentActivityName=".MainActivity"/>
则点击左上角的返回图标后将自动回到 MainActivity。
关于 android:parentActivityName 详见 官方文档
然而,在设置该属性后我发现系统在 Activity 切换时的过渡动画似乎有点不对劲。
首先看图:
为了更好的演示切换时的过渡动画,我把 过渡动画缩放 设置为了 5X 。
可以看到,正常的进入 Activity 应该是新 Activity 从右往左进入并逐渐覆盖当前Activity。
点击返回后应该是当前 Activity 从左往右退出,并逐渐显露出上层 Activity。
例如:图中的点击进入 设置界面 和退出 设置界面。
但是,通过在 AndroidManifest 中为 Activity 添加 android:parentActivityName 的方法来返回上层时却是上层 Activity 从右往左进入并覆盖当前 Activity,而非正常的当前 Activity 从左往右退出。
例如:图中点击进入 关于界面 后退出。
通过以上分析不难得出结论,使用 android:parentActivityName 并非是 finish 当前 Activity 后返回上层,而是新建一个上层 Activity 来覆盖当前 Activity。
查询资料得知
所以系统在的过渡动画给出的是进入 Activity 的动画而非退出动画,怪不得总觉得看起来怪怪的。
我个人的解决方案是手动设置 Toolbar,并添加返回按钮:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
然后继承 onOptionsItemSelected ,当点击 返回 按钮时手动 finish :
if (id ==android.R.id.home) {
finish();
}
这样虽然麻烦了点,但至少动画看起来顺眼了点......
如果各位大佬还有更好的方法欢迎指教~
PS:我没有刻意去设置切换 Activity 的动画,都是用的系统默认的过渡动画,所以可能不同的 ROM 动画效果不一样(比如我截图中的 MIUI 是左右滑出滑入,我使用原生安卓测试是上下滑出滑入),但实质都是一样的。
PPS:写完才发现原来文档里用的本来就是 “启动” 而非 “返回” Activity......所以说,就因为没好好看文档折腾了这么久......
‘陆’ android 两个activity之间怎么进行带动画的翻转切换
//实现淡入浅出的效果
startActivity(new Intent(MainActivity.this,SecondActivity.class));
overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out);
// 由左向右滑入的效果
startActivity(new Intent(MainActivity.this,SecondActivity.class));
overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right);
你可以去网络下这个方法overridePendingTransition。
‘柒’ Android 如何去掉手机中横竖屏切换时的转屏动画
性能不好的手机上,当在横竖屏画面之间进行切换时会觉得屏幕有些卡。如果在“设置”-> “开发人员选项”中关掉窗口过渡动画,就不会有卡的问题,但这样一来,所有窗口画面的动画切换效果都没有了。如果只想在横竖屏切换时关掉切换动画,应该如何实现呢?
可以修改WindowManagerService.java中的boolean值:static final boolean CUSTOM_SCREEN_ROTATION = true; 把默认的true修改成false,然后重新mm frameworks/base/services/java,并把新生成的services.jar档案push到手机,reboot手机。
‘捌’ android TextSwitcher一个带有文字切换动画效果
布局
动画
message_in_anim
message_out_anim
点击事件
‘玖’ 关于android activity切换动画的问题
貌似overridePendingTransition(int enterAnim, int exitAnim)这个方法只能调用xml的,你还是用xml写动画吧,用xml写还更简单