二十、动画-属性动画
1. ValueAnimation
进行 值 的更改,做种结果为 从 0-1 递增,执行时长为2秒
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | package com.example.myshuxing; import androidx.appcompat.app.AppCompatActivity; import android.animation.ValueAnimator; import android.os.Bundle; import android.util.Log; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_main); ValueAnimator valueAnimator = ValueAnimator.ofFloat(0f, 1f); //执行周期 valueAnimator.setDuration( 2000 ); //监听 valueAnimator.addUpdateListener( new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { float value = ( float )animation.getAnimatedValue(); Log.e( "leo" , "onAnimationUpdate: " +value ); } }); valueAnimator.start(); } } |
2. ObjectAnimator 结合控件使用,其中 ofFloat 方法中的第二个参数可以使用 平移、旋转、透明度等设置
1 2 3 4 5 | TextView view = findViewById(R.id.textmain); ObjectAnimator objectAnimator=ObjectAnimator.ofFloat(view, "alpha" ,0f,1f); objectAnimator.setDuration( 4000 ); objectAnimator.start(); |
3.监听器 针对于动画执行过程中的状态,进行调用的方法,一下为几个示例,调用上述的 objectAnimator动画的监听
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | objectAnimator.addListener( new Animator.AnimatorListener() { //动画开始时调用 @Override public void onAnimationStart(Animator animator) { } //动画结束时调用 @Override public void onAnimationEnd(Animator animator) { } //动画被取消时调用 @Override public void onAnimationCancel(Animator animator) { } //动画被重复执行时调用 @Override public void onAnimationRepeat(Animator animator) { } }); //可以直接选择所要使用的监听方法 objectAnimator.addListener( new AnimatorListenerAdapter() { @Override public void onAnimationStart(Animator animation) { super .onAnimationStart(animation); } }); |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?