android - 使用 startOffset 的动画反转

标签 android android-animation interpolation

我创建了以下动画:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:interpolator="@android:anim/anticipate_overshoot_interpolator"
     >
  <translate
      android:fromXDelta="0"
      android:toXDelta="100%p"
      android:duration="500"
     />
  <translate
      android:fromXDelta="-100%p"
      android:toXDelta="0"
      android:startOffset="500"
      android:duration="500"/>
</set>

我在 Android 2.3.6 手机上对其进行了测试,动画按顺序播放但反转了。 首先它从左边到中间,然后从中间到右边。如何以正确的顺序播放它?

最佳答案

final ImageView iv = new ImageView(this);
iv.setScaleType(ScaleType.CENTER);
final Bitmap b = BitmapFactory.decodeResource(getResources(), R.drawable.layer0);
iv.setImageBitmap(b);
OnClickListener l = new OnClickListener() {
    @Override
    public void onClick(View v) {
        float x = (iv.getWidth() + b.getWidth()) / 2;
        AnimationSet set = new AnimationSet(true);
        set.setFillBefore(false);

        Animation a;

        a = new TranslateAnimation(0, x, 0, 0);
        a.setDuration(500);
        a.setFillAfter(false);
        a.setFillBefore(false);
        a.setFillEnabled(true);
        set.addAnimation(a);

        a = new TranslateAnimation(-x, 0, 0, 0);
        a.setStartOffset(500);
        a.setDuration(500);
        a.setFillAfter(false);
        a.setFillBefore(false);
        a.setFillEnabled(true);
        set.addAnimation(a);

        iv.startAnimation(set);
    }
};
iv.setOnClickListener(l);
setContentView(iv);

关于android - 使用 startOffset 的动画反转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18780129/

相关文章:

java - 在已知缺失时间间隔之间插入 3D 坐标

java - 用于上采样的 PCM 算法

java - 我有一个离线 SQLite 数据库,我想使其在线并使用它

android - 如何将多个扬声器连接在一起并同时连接到手机?

java - 如何在开始 Activity 时设置android mediaPlayer的持续时间

java - Android View 淡入淡出并发问题

c++ - 如何优化大集合散点的插值?

android - 获取 View 的背景可绘制对象

android - 以编程方式修改 overridePendingTransition 动画

android - 我无法使用计时器播放动画