android动画属性

时间:2010-07-06 16:14:51

标签: android animation properties

有没有办法将动画应用于视图的属性?目前,我所知道的唯一动画是将动画应用于整个视图。我想知道我是否可以将动画应用于属性(例如layout_width)

2 个答案:

答案 0 :(得分:3)

您可以编辑动画以仅影响视图的某些部分。例如,我希望ViewFlipper看起来像是在垂直翻转,所以我制作了out动画,将视图的y缩小到中间的0,动画中的y从中间增长y。这是他们的样子。

<强> shrink_to_middle.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <scale
        android:interpolator="@android:anim/linear_interpolator"
        android:fromXScale="1.0"
        android:toXScale="1.0"
        android:fromYScale="1.0"
        android:toYScale="0.0"
        android:fillAfter="false"
        android:duration="200" />
    <translate
        android:fromYDelta="0"
        android:toYDelta="50%"
        android:duration="200"/>
</set>

<强> grow_from_middle.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <scale
        android:interpolator="@android:anim/linear_interpolator"
        android:fromXScale="1.0"
        android:toXScale="1.0"
        android:fromYScale="0.0"
        android:toYScale="1.0"
        android:fillAfter="false"
        android:startOffset="200"
        android:duration="200" />
    <translate
        android:fromYDelta="50%"
        android:toYDelta="0"
        android:startOffset="200"
        android:duration="200"/>
</set>

答案 1 :(得分:0)

即使您只想将动画应用于视图的属性,您仍然需要将其设置为视图的动画。

<scale 
    android:interpolator="@android:anim/accelerate_decelerate_interpolator"
    android:fromXScale="1.0" 
    android:toXScale="0" />

此动画例如会更改视图的宽度。

您可以通过

设置动画
yourView.setAnimation(AnimationUtils.loadAnimation(this, R.anim.animation_name));