如何组合XML动画以实现以下效果:
1 - > 2(在TextView中淡入时滑入)
我的部分XML代码是:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:orientation="horizontal"
android:layout_weight="1" >
<TextView
android:id="@+id/tvData"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:text="TYPE:"
android:gravity="center"
android:textStyle="bold"
android:textSize="@dimen/info_height"
android:shadowDx="4"
android:shadowDy="4"
android:shadowColor="#A7A7A7"
android:shadowRadius="15" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:layout_weight="1"
android:padding="@dimen/about_divider_height" >
<TextView
android:id="@+id/tvBloodDetail"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/roundtv"
android:text=""
android:gravity="center"
android:textSize="@dimen/btn_text"
android:textStyle="bold"
android:shadowDx="8"
android:shadowDy="8"
android:shadowColor="#CC900205"
android:shadowRadius="25"
android:textColor="#FFFFFF"
android:visibility="invisible" />
</LinearLayout>
</LinearLayout>
Java的一部分:
private Runnable task = new Runnable() {
public void run() {
//run the animated task
tvB.setAnimation(animationTranslateIn);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.bloodtype);
tvB = (TextView) findViewById(R.id.tvBloodDetail);
animationTranslateIn = AnimationUtils.loadAnimation(BloodType.this, R.anim.slideanim);
}
我有slideanim xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator"
android:shareInterpolator="true">
<alpha
android:fromAlpha="1.0"
android:toAlpha="0.1"
android:duration="200"
android:repeatCount="1"
android:repeatMode="reverse"
android:startOffset="0" />
<translate android:duration="2000"
android:fromXDelta="0"
android:toXDelta="100%p"
android:startOffset="0" />
</set>
我如何将上述两者结合起来,甚至不同,以遵循与1&amp; 1相同的过程。 2?
答案 0 :(得分:6)
将它们放在同一组中,并将它们的起始偏移设置为相同的值:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator"
android:shareInterpolator="true">
<alpha
android:fromAlpha="1.0"
android:toAlpha="0.1"
android:duration="200"
android:repeatCount="1"
android:repeatMode="reverse"
android:startOffset="0" />
<translate android:duration="2000"
android:fromXDelta="0"
android:toXDelta="100%p"
android:startOffset="0" />
</set>
默认startOffset
为0,因此您可以将其删除。如果您不想要,也可以不共享内插器。
请参阅http://developer.android.com/guide/topics/resources/animation-resource.html。
答案 1 :(得分:1)
您需要使用“动画集”创建新的动画XML,然后照常应用它。
您可以在每个部件上设置定时偏移。
在开发者网站上做了很好的解释。