gpt4 book ai didi

android - 翻译后旋转动画在 Android 上不起作用

转载 作者:行者123 更新时间:2023-12-02 04:48:43 25 4
gpt4 key购买 nike

我正在尝试实现一个带有动画的应用程序。我想得到这个序列:

1 - 水平移动图像

2 - 将图像旋转 90º

3 - 垂直移动图像

但是在第2步中,图片并没有自己旋转,而是移动到原来的位置旋转。

我的错误是什么?

sequential.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true"
android:interpolator="@android:anim/linear_interpolator" >

<translate
android:duration="1000"
android:fillAfter="true"
android:fromXDelta="0%p"
android:startOffset="500"
android:toXDelta="83%p" />

</set>

主.java

RotateAnimation animRotar1;

@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

imagenPacman = (ImageView) findViewById(R.id.imagen);
fondoImagen = (RelativeLayout) findViewById(R.id.fondo_imagen);

animRotar1 = new RotateAnimation(0, 90,
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);

animPacman = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.sequential);
animPacman.setAnimationListener(new AnimationListener() {

@Override
public void onAnimationStart(Animation animation) {}

@Override
public void onAnimationRepeat(Animation animation) {}

@Override
public void onAnimationEnd(Animation animation) {

rotar1();
}
});

fondoImagen.startAnimation(animPacman);
}

private void rotar1() {

animRotar1.setInterpolator(new LinearInterpolator());
animRotar1.setDuration(1000);
animRotar1.setFillEnabled(true);
animRotar1.setFillAfter(true);

fondoImagen.startAnimation(animRotar1);
}

最佳答案

像这样:

这里要计算平移动画后目标位置的距离,

编辑:

float pivotX=(getResources().getDisplayMetrics().widthPixels/100)*83;

RotateAnimation animation2 = new RotateAnimation(0,90,Animation.RELATIVE_TO_PARENT,pivotX,Animation.RELATIVE_TO_PARENT,0);

关于android - 翻译后旋转动画在 Android 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30777726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com