我对编程很新,并且有一个问题。我想制作一个动画效果,其中水平条从屏幕顶部移动到屏幕底部,而不是从底部到顶部以特定速度移动。现在,我正在使用帧动画,其中播放了一系列图像,这些图像产生的效果就好像条形图从上到下移动。
现在我的问题是如何通过补间动画来实现它,因为它只使用一个图像来使这个效果按我的意愿工作。
提前谢谢。
答案 0 :(得分:0)
您应该使用Animation
功能。在resource
文件夹中为其创建一个新文件夹,以保存所有类型的动画xml
类。
对于底部动画中的幻灯片,请使用以下代码:
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromYDelta="100%p"
android:duration="@android:integer/config_longAnimTime"/>
对于顶级动画中的幻灯片,请使用以下代码:
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:toYDelta="0%p"
android:duration="@android:integer/config_longAnimTime" />
对于幻灯片底部动画,请使用以下代码:
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromYDelta="0"
android:duration="@android:integer/config_longAnimTime" />
对于幻灯片顶部动画,请使用以下代码:
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:toYDelta="100%p"
android:duration="@android:integer/config_longAnimTime" />
在您的活动中,首先全局初始化Animation
,如:
Animation anim;
在onCreate
中获取您想要的动画类型ID:
anim = (Animation) AnimationUtils.loadAnimation(Play.this,
R.anim.slide_in_bottom);
然后在需要调用它时设置动画:
container.setAnimation(anim);
anim.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationEnd(Animation arg0) {
MyTask();
container.setVisibility(View.VISIBLE);
}
@Override
public void onAnimationRepeat(Animation animation) {
container.setVisibility(View.VISIBLE);
}
@Override
public void onAnimationStart(Animation animation) {
container.setVisibility(View.VISIBLE);
}
});
container.startAnimation(anim);
此处container
是您的主LinearLayout
课程的父级布局,即xml
。