欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android - 控件抖动效果

程序员文章站 2024-02-05 20:35:04
...

思路:(左右抖动)

  1. 编写一个动画:控件从左移到右。
  2. 然后执行此动画多次。

cycleInterpolator加速器

  • 作用:让动画连续执行多次
  • cycles:执行次数 (android:cycles="2"

效果

实际效果比图好,gif显示抖动不太全
Android - 控件抖动效果

Android - 控件抖动效果

1. 添加两个动画文件

Android - 控件抖动效果

  • 添加 anim文件

Android - 控件抖动效果

  • 新建2个 xml文件

Android - 控件抖动效果

Android - 控件抖动效果
Android - 控件抖动效果

  • shake_button.xml
<?xml version="1.0" encoding="utf-8"?>
<!--
    translate:移动标签
    fromXDelta,toXDelta:表示x轴移动的像素点
    fromYDelta,toYDelta:表示Y轴移动的像素点
    duration:持续时间(ms)
    interpolator:插值器(可以引用自定义)(引用系统的:https://www.jianshu.com/p/1f2501840db8)
-->
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXDelta="0"
    android:toXDelta="30"
    android:duration="200"
    android:interpolator="@anim/cycle_7"/>
  • cycles.xml
<?xml version="1.0" encoding="utf-8"?>
<cycleInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
    android:cycles="2" />

Android - 控件抖动效果

2. 加载动画资源

  • MainActivity.java
public class MainActivity extends AppCompatActivity {
    Button bt;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        bt = findViewById(R.id.bt);
    }

    public void button(View v){
        //加载动画资源文件
        Animation shake = AnimationUtils.loadAnimation(this, R.anim.shake_button);

        //给组件播放动画效果
        //findViewById(R.id.bt).startAnimation(shake);  //写法一
        bt.startAnimation(shake);  //写法二
    }
}
  • activity_main.xml
	<Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="别点我"
        android:onClick="button"
        android:id="@+id/bt"/>
相关标签: android 控件