android - anim translate中 fromXDelta、toXDelta、fromYDelta、toXDelta属性

<set xmlns:android="http://schemas.android.com/apk/res/android">
  <translate 
      android:fromXDelta="0" 
      android:toXDelta="100%" 
      android:duration="300"/>

  <alpha 
    android:fromAlpha="0.0" 
    android:toAlpha="1.0" 
    android:duration="300" />
</set>


其中:

    translate 位置转移动画效果  
            整型值:  
                fromXDelta 属性为动画起始时 X坐标上的位置  
                toXDelta   属性为动画结束时 X坐标上的位置  
                fromYDelta 属性为动画起始时 Y坐标上的位置  
                toYDelta   属性为动画结束时 Y坐标上的位置  
                注意:  
                         没有指定,  
                         默认是以自己为相对参照物  
            长整型值:  
                duration  属性为动画持续时间  

                说明:   时间以毫秒为单位  

在这些属性里面还可以加上%和p,例如:

android:toXDelta="100%",表示自身的100%,也就是从View自己的位置开始。

android:toXDelta="80%p",表示父层View的80%,是以它父层View为参照的。




### Android Translate 动画功能介绍 在 Android 中,`TranslateAnimation` 是一种用于创建平移动画效果的类。这种动画可以沿 X 轴或 Y 轴方向移动视图对象[^3]。 #### 创建 Translate Animation 的方式 可以通过 XML 或者 Java/Kotlin 代码来定义 `TranslateAnimation`: ##### 方法一:通过 XML 定义 可以在 res/anim 文件夹下创建一个新的 XML 文件,例如命名为 `translate_animation.xml`: ```xml <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="0%" android:toXDelta="75%" android:duration="1000"/> </set> ``` 此段代码表示一个持续时间为一秒 (1000毫秒),从当前位置到右侧75%位置水平移动的效果。 ##### 方法二:通过编程方式定义 也可以直接在 Activity 或 Fragment 中使用如下代码实例化并应用 `TranslateAnimation` 对象: ```java // 创建新的 TranslateAnimation 实例, 参数分别为 fromXType, toXType, fromYType, toYType, // 这里设置的是相对父容器百分比的形式. TranslateAnimation animation = new TranslateAnimation( Animation.RELATIVE_TO_PARENT, 0f, Animation.RELATIVE_TO_PARENT, .75f, Animation.RELATIVE_TO_PARENT, 0f, Animation.RELATIVE_TO_PARENT, 0f); animation.setDuration(1000); // 设置动画时长为1秒钟. View viewToAnimate = findViewById(R.id.view_to_animate); viewToAnimate.startAnimation(animation); // 开始执行动画. ``` 上述例子展示了如何让指定 ID 的 View 组件沿着 X 方向由原点移动至其宽度的75%,而保持 Y 坐标的不变。 #### 关键属性解释 - **fromXDelta/toXDelta**: 表示起始和终止的 X 坐标偏移量; - **fromYDelta/toYDelta**: 同理代表垂直方向上的变化; - **duration**: 控制整个动画过程所需的时间长度; 这些参数允许开发者精确控制动画的行为模式以及视觉表现形式。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值