Android - 控制元件抖動效果

beluga發表於2020-09-14

思路:(左右抖動)

  1. 編寫一個動畫:控制元件從左移到右。
  2. 然後執行此動畫多次。

cycleInterpolator加速器

  • 作用:讓動畫連續執行多次
  • cycles:執行次數 ( android:cycles="2"

效果

實際效果比圖好,gif顯示抖動不太全
在這裡插入圖片描述

在這裡插入圖片描述

1. 新增兩個動畫檔案

在這裡插入圖片描述

  • 新增 anim檔案

在這裡插入圖片描述

  • 新建2個 xml檔案

在這裡插入圖片描述

在這裡插入圖片描述
在這裡插入圖片描述

  • shake_button.xml
<?xml version="1.0" encoding="utf-8"?><!--
    translate:移動標籤
    fromXDelta,toXDelta:表示x軸移動的畫素點
    fromYDelta,toYDelta:表示Y軸移動的畫素點
    duration:持續時間(ms)
    interpolator:插值器(可以引用自定義)(引用系統的:)--><translate xmlns:android="
    android:fromXDelta="0"
    android:toXDelta="30"
    android:duration="200"
    android:interpolator="@anim/cycle_7"/>12345678910111213
  • cycles.xml
<?xml version="1.0" encoding="utf-8"?><cycleInterpolator xmlns:android="
    android:cycles="2" />123

在這裡插入圖片描述

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);  //寫法二
    }}12345678910111213141516171819
  • activity_main.xml
	<Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="別點我"
        android:onClick="button"
        android:id="@+id/bt"/>


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69981976/viewspace-2719447/,如需轉載,請註明出處,否則將追究法律責任。

相關文章