android 设置全局的页面切换动画问题

   这两天在看android 设置页面切换动画,看的很纠结,晕菜了

  我这里有四个手机,

   一加 版本  5.1.1   小米2s  版本 5.0     

   华为P6   版本    4.4.2   酷派版本   4.2.2

  一加和小米的效果是一样的,算正常,其他两个都不太相同

  根据大多数人的说法,设置动画主要有两种方式:

1,在代码里控制,页面跳转的时候去设置

<span style="font-size:18px;"> intent.setClass(MainActivity.this,NextActivity.class);
 startActivity(intent);
 overridePendingTransition(R.anim.group_enter_in , R.anim.group_enter_out);</span>

在页面关闭的时候也可以设置返回时的动画

<span style="font-size:18px;">@Override
    public void onBackPressed() {

        this.finish();
        this.overridePendingTransition(R.anim.group_back_in, R.anim.group_back_out);
        super.onBackPressed();
    }</span>

这种做法是最保守的做法,效果基本都能实现,但是页面太多,跳转的地方太多,写起来太复杂,如果只是加在某个地方还可以。

2,在清单文件里面设置主题theme,在values 下的style文件里面设置动画

<span style="font-size:18px;"><application
            android:icon="@drawable/icon"
            android:label="@string/app_name"
            android:theme="@style/my_theme"
            ></span>

样式styles里面 

<span style="font-size:18px;"><style name="my_anim" parent="@android:style/Animation.Activity" >
         <!--以当前这个页面 T 为基准   A --> T --> B  -->
        <!-- T 页面出现动画 -->
        <item name="android:activityOpenEnterAnimation">@anim/slide_left_in</item>
        <!-- A页面退出动画-->
        <item name="android:activityOpenExitAnimation">@anim/slide_right_out</item>

        <!-- B 返回到 T 页面-->
        <!-- T 页面出现动画-->
        <item name="android:activityCloseEnterAnimation">@anim/slide_right_in</item>
        <!-- B页面消失动画-->
        <item name="android:activityCloseExitAnimation">@anim/slide_left_out</item>

    </style>

    <style name="my_theme" parent="@android:style/Theme">
        <!-- window动画 -->
        <item name="android:windowAnimationStyle">@style/my_anim</item>
        <!-- 无标题显示-->
        <item name="android:windowNoTitle">true</item>
        <!-- 设置欢迎页面的背景图 -->
        <item name="android:windowBackground">@drawable/start_image</item>

    </style></span>

这种做法据说是微信的做法,但是,上面四个手机 一加 小米  酷派 都正常,但是华为手机上就是一点效果都没有,依旧还是系统默认的属性,华为手机上的微信效果却是好好的。

需要注意的一点,在设置主题的时候,有一个属性  

<span style="font-size:18px;"><item name="android:windowIsTranslucent">true</item></span>

一定要注意,是否让背景图透明,建议还是不要添加,加上后,动画效果就不行了,搜了好多解决方案,还是没有解决

上面那种做法是设全局的页面切换动画,设置单独页面的切换动画也是可以的,注意我在动画那得注释,分清是什么时候的动画。

如果需要全局的动画,同时也需要某个页面有单独的动画,在我的项目里,我是仿微信,页面切换左进右出,查看图片放大缩小的形式。

我采用的做法是,加上全局的动画主题,再把显示图片的页面再加一个主题。

<activity android:name=".ImagePagerActivity" android:theme="@style/show_image_anim"/>


<style name="show_image_anim" parent="@android:style/Theme">
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowBackground">@color/tran_black</item>
        <!-- window动画 -->
        <item name="android:windowAnimationStyle">@style/image_anim</item>
        <item name="android:windowIsTranslucent">true</item>
    </style>
    <style name="image_anim" parent="@android:style/Animation.Activity">
        <item name="android:activityOpenEnterAnimation">@anim/group_enter_in</item>
       
        <item name="android:activityCloseExitAnimation">@anim/group_back_out</item>
    </style>

在这里我加上了背景透明这个属性
<item name="android:windowIsTranslucent">true</item>
因为我发现,在这里加上,可以屏蔽全局的动画,而图片页面动画可以显示出来,但是我所添加的动画

<style name="image_anim" parent="@android:style/Animation.Activity">
        <item name="android:activityOpenEnterAnimation">@anim/group_enter_in</item>
        
        <item name="android:activityCloseExitAnimation">@anim/group_back_out</item>
    </style>

在进入图片页面第一个起作用,返回时,不同的手机效果不同

一加和小米 没有第二个动画那个效果,酷派则有动画效果很正常,华为依旧然并卵啊。。。。。

然后我只能在图片页面关闭的时候添加

overridePendingTransition(R.anim.group_back_in, R.anim.group_back_out);
效果还算可也以吧,有没有更好的方案,请指点我把。。。。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值