展会信息港展会大全

android 2.3以下动画无响应的问题的解决方案
来源:互联网   发布日期:2016-01-19 12:26:04   浏览:3277次  

导读:为了体验所以想统一调整应用的activity进出动画效果。通过设置一个style来设置。代码如下: 1 2 3 4 5 6 7 8 910111213141516171819style name=activity_theme parent=@android:style Theme ...

为了体验所以想统一调整应用的activity进出动画效果。通过设置一个style来设置。代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

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

<!-- 设置没有标题 -->

<item name="android:windowNoTitle">true</item>

<!-- 设置activity切换动画 -->

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

</style>

<!-- animation 样式 -->

<style name="activity_Animation" parent="@android:style/Animation.Activity">

<!-- 在该Activity中启动其他Activity时的进入者动画 -->

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

<!-- 在该Activity中启动其他Activity时的退出者动画 -->

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

<!-- 从其他Activity返回至该Activity时的进入者动画 -->

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

<!-- 从其他Activity返回至该Activity时的退出者动画 -->

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

</style>

然后在AndroidManifest.xml里面配置:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

<application

android:allowBackup="true"

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/activity_theme" >

<activity

android:name="com.example.androidtest.MainActivity"

android:label="@string/app_name" >

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

<activity android:name="NextActivity" >

</activity>

</application>

到这里,任务完成了。

附:如果想针对某一个Activity做此操作的话,将 android:theme="@style/activity_theme" 移至标签中就可以了。(网上都能查得到,相应的动画自己写就行了。)

BUG来啦来啦。由于我们应用开发的时间较早,所以需要兼容4.0一下的手机版本,常见的一半都是2.2、2.3版本的手机,坑爹的事情来了,在这 些个手机上面动画全部无效,悲剧埃在手机动画设置把设置选项设置成全部动画也不行。

后来参考了这篇文章:http://www.cnblogs.com/Jaylong/archive/2012/08/30/activity.html, 依葫芦画瓢的把:

1

<style name="activity_Animation" parent="@android:style/Animation.Activity">

改成了:

1

<style name="activity_Animation" parent="@android:style/Animation">

再次运行,毫无变化,这尼玛揪心玩意儿。

再次检查自己的代码,发现anim文件里面的内容是这样的:

1

2

3

4

5

6

7

8

9

<set xmlns:android="http://schemas.android.com/apk/res/android"

android:interpolator="@android:anim/accelerate_decelerate_interpolator" >

<translate

android:duration="@android:integer/config_shortAnimTime"

android:fromXDelta="0%p"

android:toXDelta="100%p" />

</set>

猜会不会是 android:interpolator="@android:anim/accelerate_decelerate_interpolator"和 android:duration="@android:integer/config_shortAnimTime"这两个系统定义的文件不兼容的问题 呢。首改android:duration="@android:integer/config_shortAnimTime":

@android:integer/config_shortAnimTime改成源码里面看到的值150,变成了这样:

1

2

3

4

5

6

7

8

9

<set xmlns:android="http://schemas.android.com/apk/res/android"

android:interpolator="@android:anim/accelerate_decelerate_interpolator" >

<translate

android:duration="150"

android:fromXDelta="0%p"

android:toXDelta="100%p" />

</set>

运行,OK。果然是这个原因。猜想可能是因为系统读不到这个属性就默认设成了0,导致动画运行的很快, 看不出来效果。这点android做得比较不智能了,至少给我默认个100毫秒吧,直接为0就太恶心了。。

这个故事到此应该结束了。。。

再附:

项目组的兄弟也遇到这个问题了。哈哈哈,加载网络资源之前的加载动画在2.2、2.3上面也动不了了,帧动画只显示了一郑跟上面描述的问题还不一样。

1

2

3

4

ImageView rocketImage = (ImageView) layout.findViewById(R.id.animation);

rocketImage.setBackgroundResource(R.drawable.progress_blue_animation);

rocketAnimation = (AnimationDrawable) rocketImage.getBackground();

rocketAnimation.start();

稍微改动一下:

1

2

3

4

5

6

7

8

ImageView rocketImage = (ImageView) layout.findViewById(R.id.animation);

rocketImage.setBackgroundResource(R.drawable.progress_blue_animation);

rocketAnimation = (AnimationDrawable) rocketImage.getBackground();

rocketImage.post(new Runnable(){

public void run(){

rocketAnimation.start();

}

});

运行,成功,收工。

源码稍候研究,迫不及待发个博客,以免后面偷懒又不写了。

以上做个笔记以免忘记。

赞助本站

人工智能实验室

相关热词: 动画 无响应 android

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港