如何在Android中实现从左到右的动画

时间:2019-01-03 16:06:04

标签: android android-animation

我想在我的应用程序中Left to Right Arrow Animation,如下图所示: enter image description here

我尝试使用以下代码:

    ImageView arrowImage = sbView.findViewById(R.id.arrowID);
    ScaleAnimation scale = new ScaleAnimation(0.5f, 0.5f, 1, 1, ScaleAnimation.RELATIVE_TO_SELF, .5f,
            ScaleAnimation.RELATIVE_TO_SELF, .5f);
    scale.setDuration(700);
    scale.setRepeatCount(INFINITE);
    scale.setRepeatMode(REVERSE);
    scale.setFillAfter(true);
    scale.setInterpolator(new OvershootInterpolator());
    arrowImage.startAnimation(scale);

但是我的代码不符合我的期望。我尝试了与互联网不同的解决方案,但没有取得结果。

2 个答案:

答案 0 :(得分:1)

这是翻译,请尝试TranslateAnimation

TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, float toYDelta)

答案 1 :(得分:1)

  

动画XML文件

<set
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/linear_interpolator"
    android:fillAfter="true">

   <translate
        android:fromXDelta="-10%p"
        android:toXDelta="10%p"
        android:duration="1200" />
</set>

要加载此动画

viewObject.startAnimation(AnimationUtils.loadAnimation(activity, R.anim.filename));

对于手柄移动位置,请使用xml属性fromXDeltatoXDelta更改值

  • android:fromXDelta

浮点数或百分比。起始X偏移量。表示为:相对于正常位置的像素(例如“ 5”),相对于元素宽度的百分比(例如“ 5%”)或相对于父宽度的百分比(例如“ 5%p”) )。

  • android:toXDelta

浮点数或百分比。结束X偏移。表示为:相对于正常位置的像素(例如“ 5”),相对于元素宽度的百分比(例如“ 5%”)或相对于父宽度的百分比(例如“ 5%p”) )。

有关更多有用信息,请访问Animation-Resource