在Android中,可以使用屬性動(dòng)畫(huà)(Property Animation)為按鈕添加動(dòng)畫(huà)效果
res/anim
目錄下創(chuàng)建一個(gè)新的XML文件,例如button_animation.xml
。如果anim
目錄不存在,請(qǐng)創(chuàng)建一個(gè)。在這個(gè)文件中,定義動(dòng)畫(huà)的屬性和值。例如,以下代碼定義了一個(gè)縮放動(dòng)畫(huà):<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:propertyName="scaleX"
android:duration="500"
android:valueFrom="1"
android:valueTo="1.2"
android:repeatCount="1"
android:repeatMode="reverse" />
<objectAnimator
android:propertyName="scaleY"
android:duration="500"
android:valueFrom="1"
android:valueTo="1.2"
android:repeatCount="1"
android:repeatMode="reverse" />
</set>
這個(gè)動(dòng)畫(huà)將按鈕在X軸和Y軸上分別放大1.2倍,然后再還原到原始大小。你可以根據(jù)需要修改動(dòng)畫(huà)屬性。
Java:
import android.animation.AnimatorInflater;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = findViewById(R.id.my_button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
animateButton(v);
}
});
}
private void animateButton(View view) {
AnimatorSet animation = (AnimatorSet) AnimatorInflater.loadAnimator(this, R.anim.button_animation);
animation.setTarget(view);
animation.start();
}
}
Kotlin:
import android.animation.AnimatorInflater
import android.os.Bundle
import android.view.View
import android.widget.Button
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val button: Button = findViewById(R.id.my_button)
button.setOnClickListener { view ->
animateButton(view)
}
}
private fun animateButton(view: View) {
val animation = AnimatorInflater.loadAnimator(this, R.anim.button_animation) as AnimatorSet
animation.setTarget(view)
animation.start()
}
}
現(xiàn)在,當(dāng)用戶點(diǎn)擊按鈕時(shí),動(dòng)畫(huà)效果將會(huì)應(yīng)用到按鈕上。你可以根據(jù)需要調(diào)整動(dòng)畫(huà)屬性和持續(xù)時(shí)間。