API 级别 < 11 中的 ObjectAnimator
Posted
技术标签:
【中文标题】API 级别 < 11 中的 ObjectAnimator【英文标题】:ObjectAnimator in API Level < 11 【发布时间】:2012-07-22 15:19:45 【问题描述】:所以我对 android 感到非常沮丧,事实上,当您将 API 级别回滚到 11 之后时,一半的东西都不起作用。为什么不像 ios 那样简单且做得很好?!
问题
我正在使用ObjectAnimators
为Fragments
之间的过渡设置动画。它们在任何 API 级别 11 及以上的环境中都能正常工作。一旦我将构建目标更改为小于 11,我就会遇到问题,说它在 xml 文件中找不到诸如 propertyName
和 valueType
之类的属性的资源标识符。
问题
我应该改用什么来为我的Fragment
转换动画,这将适用于 API 级别 > 7。
提前致谢。
【问题讨论】:
Property Animation
在 Android 3.0(API 级别 11)中引入。
对于菜鸟查询感到抱歉。我知道我们无法构建 pre-3.0,但这是否也意味着使用 Property 动画的动画(在使用 4.4 构建的应用上)将不会在 pre-3.0 的设备上运行?
【参考方案1】:
我建议使用 http://nineoldandroids.com/ ,它来自 ActionBarSherlock 项目的同一制造商,它引入了从 API 1 开始工作的支持 ObjectAnimator。
【讨论】:
但是,如何集成nineoldandroids并支持片段动画? 可悲的是,即使在 appcompat-v7 18.0 之后也是如此 :( 即使对于 appcompat-v7 20.0。但是我不会再期待了。 Welp,AppCompat v21 中也没有。希望有一天我们能做到这一点。 AppCompat v22 中也没有。【参考方案2】:Property Animation
在 Android 3.0(API 级别 11)中引入
为了支持较低的android版本,(我没试过,但你可以用)
Nine Old AndroidsDownload
Android 库,用于在所有版本的平台上使用 Honeycomb (Android 3.0) 动画 API 回到 1.0!。
也可以看看这个博客Fragment Transactions Reference
还有这个问题Android Fragment standard transition not animating
【讨论】:
AFAIK,支持库不包含属性动画类。 调用需要 API 级别 12(当前最低为 11):android.view.ViewPropertyAnimator#scaleX 九个旧机器人现已弃用。以上是关于API 级别 < 11 中的 ObjectAnimator的主要内容,如果未能解决你的问题,请参考以下文章
android:actionBarStyle 需要 API 级别 11
API 级别 11 之前的 AsyncTask.executeOnExecutor()