我有一个屏幕,您可以通过按“生成”按钮为自己生成每日报价,当您单击按钮时,将播放动画,然后您将进行另一项活动。另一个名为“Szabaly”的活动将为您提供一个随机文本,然后您可以按后退按钮,然后您可以返回活动,您可以在此处按“生成”按钮。
问题是,我点击“生成”按钮,动画播放,我进入“Szabaly”活动没有任何问题,但是当我按下后退按钮时,我找不到我的“生成”按钮。它消失了。也许我必须以某种方式重置动画(状态?)?并将其设置为第一帧?如果你知道我的意思......
我想编写我的应用程序代码,要知道只要我进入活动,您可以点击生成按钮,将动画重置为第一帧,并且每当我得到动画时都可以播放它进入活动并点击它。
这是我的代码。
public void onClick(View v) {
YoYo.with(Techniques.ZoomOut).duration(700)
.withListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
input.setText(null);
Intent myIntent = new Intent(MainActivity.this, Szabaly.class);
startActivity(myIntent);
}
我使用了这个库:Android ViewAnimations
答案 0 :(得分:1)
您可以使用以下代码,在此代码中您还可以在xml中设置fillAfter,duration,zoom value,repeat和其他动画参数。你也可以用同样的方式从xml创建其他动画。
View view = findViewById(R.id.viewLL);
Animation zoomOutAnimation = AnimationUtils.loadAnimation(this,
R.anim.zoom_out);
// set animation in listener
zoomOutAnimation .setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
// copy all file before start animation
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationEnd(Animation arg0) {
// move to next activity
}
});
view .startAnimation(zoomOutAnimation );
anim / zoom_out.xml:
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="400"
android:fillAfter="false"
android:fromXScale="1.0"
android:fromYScale="1.0"
android:interpolator="@android:anim/linear_interpolator"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="0.0"
android:toYScale="0.0" />
答案 1 :(得分:0)
YOYO不支持'fillafter'属性。因为在动画结束后,您显示的视图再次执行以下操作:YoYo.with(Techniques.ZoomIn).duration(1).playOn(animated_view);