这两天在看android 设置页面切换动画,看的很纠结,晕菜了
我这里有四个手机,
一加 版本 5.1.1 小米2s 版本 5.0
华为P6 版本 4.4.2 酷派版本 4.2.2
一加和小米的效果是一样的,算正常,其他两个都不太相同
根据大多数人的说法,设置动画主要有两种方式:
1,在代码里控制,页面跳转的时候去设置
intent.setClass(MainActivity.this,NextActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.group_enter_in , R.anim.group_enter_out);
在页面关闭的时候也可以设置返回时的动画
@Override
public void onBackPressed() {
this.finish();
this.overridePendingTransition(R.anim.group_back_in, R.anim.group_back_out);
super.onBackPressed();
}
这种做法是最保守的做法,效果基本都能实现,但是页面太多,跳转的地方太多,写起来太复杂,如果只是加在某个地方还可以。
2,在清单文件里面设置主题theme,在values 下的style文件里面设置动画
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@style/my_theme"
>
样式styles里面
T --> B -->
@anim/slide_left_in
@anim/slide_right_out
@anim/slide_right_in
@anim/slide_left_out
@style/my_anim
true
@drawable/start_image
这种做法据说是微信的做法,但是,上面四个手机 一加 小米 酷派 都正常,但是华为手机上就是一点效果都没有,依旧还是系统默认的属性,华为手机上的微信效果却是好好的。
需要注意的一点,在设置主题的时候,有一个属性
true
一定要注意,是否让背景图透明,建议还是不要添加,加上后,动画效果就不行了,搜了好多解决方案,还是没有解决
上面那种做法是设全局的页面切换动画,设置单独页面的切换动画也是可以的,注意我在动画那得注释,分清是什么时候的动画。
如果需要全局的动画,同时也需要某个页面有单独的动画,在我的项目里,我是仿微信,页面切换左进右出,查看图片放大缩小的形式。
我采用的做法是,加上全局的动画主题,再把显示图片的页面再加一个主题。
true
@color/tran_black
@style/image_anim
true
@anim/group_enter_in
@anim/group_back_out
在这里我加上了背景透明这个属性
true因为我发现,在这里加上,可以屏蔽全局的动画,而图片页面动画可以显示出来,但是我所添加的动画
@anim/group_enter_in
@anim/group_back_out
在进入图片页面第一个起作用,返回时,不同的手机效果不同
一加和小米 没有第二个动画那个效果,酷派则有动画效果很正常,华为依旧然并卵啊。。。。。
然后我只能在图片页面关闭的时候添加
overridePendingTransition(R.anim.group_back_in, R.anim.group_back_out);效果还算可也以吧,有没有更好的方案,请指点我把。。。。