And*_*ndy 5 java animation android
我直接从android文档中获取了一些动画xml,据我所知,它不适用于我的2.1更新1模拟器或我的2.1更新1 Galaxy S设备.
具体来说,我正在尝试创建一个动画来脉动视图(即在一个动画中使其变小然后变大)这是非常简单的标记:
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:fromXScale="1.0"
android:toXScale="0.5"
android:fromYScale="1.0"
android:toYScale="0.5"
android:pivotX="50%"
android:pivotY="50%"
android:duration="1000" />
<set android:startOffset="1000">
<scale
android:fromXScale="0.5"
android:toXScale="1.0"
android:fromYScale="0.5"
android:toYScale="1.0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="1000" />
</set>
</set>
Run Code Online (Sandbox Code Playgroud)
所以我想要实现的是将视图从大小缩小到一半以上,然后将其恢复到原始大小超过一秒.所以重新迭代,超过两秒它应该从原始 - >半尺寸 - >原始.
实际发生的是它瞬间捕捉到一半的视图大小(即使从X/YScale为1.0),然后执行动画超过两秒钟,然后快速恢复到原始大小.
其他人可以快速尝试一下吗?如果其他人看到这种行为,我会将其作为错误提交.我简直无法相信一些基本的东西可能被打破!?
此外,在此页面上的"Tween Animation"标题下复制此动画http://developer.android.com/guide/topics/graphics/2d-graphics.html 逐字逐句也不按照页面说明的动画.似乎以完全相同的方式被打破!
有人有任何想法吗?
谢谢!
安迪.
我最近发现的并且对动画的不良行为负有部分责任的事实是<set>标签中使用的许多XML属性不起作用!
在你的代码示例中 <set android:startOffset="1000">
由于一个荒谬的错误/缺陷,Android将忽略此属性,这将导致您的第二个<set>动画子项与您的父项同时启动<set>
更令人沮丧的是,这个属性在代码中以编程方式工作,setStartOffset()而不是在XML中工作.
我花了几个令人沮丧的时间来确定哪些属性在代码和XML中用于AnimationSets并在此处提交了错误报告/问题:问题17662
综上所述:
setRepeatCount()/ android:repeatCount
此属性(以及repeatMode)在代码或XML中不起作用.这使得重复整套动画变得困难.
setDuration()/ android:duration
在代码WORKS中的AnimationSet上设置它(覆盖子动画的所有持续时间),但不包括在XML中的标记中
setFillAfter()/ android:fillAfter
这适用于标记的代码和XML.奇怪的是,我已经让它也可以在不需要将fillEnabled设置为true的情况下工作.
setFillBefore()/ android:fillBefore
似乎在代码和XML中都没有效果/被忽略
setFillEnabled()/ android:fillEnabled
似乎在代码和XML中都没有效果/被忽略.即使没有包含fillEnabled或将fillEnabled设置为false,我仍然可以获得fillAfter工作.
setStartOffset()/ android:startOffset
这仅适用于代码而不适用于XML.
不用说,这会引起很多不必要的挫折.
我去掉了第二个<set>标签,所以只有一个<set>有两个<scale>孩子。这使得一个周期工作正常,但无法重复。也许你必须监听动画结束并手动重新启动它(因此偏移量每次都从 0 开始)。
好的一面是,我能够repeatMode仅使用一个标签来实现您想要的效果:
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:repeatMode="reverse"
android:fromXScale="1.0"
android:toXScale="0.5"
android:fromYScale="1.0"
android:toYScale="0.5"
android:pivotX="50%"
android:pivotY="50%"
android:duration="1000" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3863 次 |
| 最近记录: |