Android 按钮动画
Android button animate
我这里有这些按钮,我希望它们都有一些点击动画。
长大一点再return恢复正常
这是按钮 xml 代码。
<ImageButton
android:layout_width="165dp"
android:layout_height="60dp"
android:text="next"
android:id="@+id/next"
android:src="@drawable/next"
android:background="@android:color/transparent"
android:layout_alignParentBottom="true"
android:layout_alignRight="@+id/linearLayout"
android:layout_alignEnd="@+id/linearLayout" />
<ImageButton
android:layout_width="170dp"
android:layout_height="60dp"
android:text="confirm"
android:src="@drawable/confirm"
android:background="@android:color/transparent"
android:id="@+id/confirm"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentBottom="true"
/>
这些按钮在一个 activity_main.xml 文件中。
谁能帮我看看我应该怎么做才能实现它?
非常感谢您的宝贵时间。
在按钮的onclick 中,我们使用view.startAnimation()
方法启动我们要使用的动画。我们首先使用 AnimationUtils.loadAnimation()
加载所需的动画
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
view.startAnimation(AnimationUtils.loadAnimation(context, R.anim.button_click));
}
}
现在在 anim 文件夹下创建一个名为 button_click.xml 或任何你想命名的文件。
anim/button_click.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:fromXScale = "1"
android:toXScale = "0.9"
android:fromYScale = "1"
android:toYScale = "0.9"
android:pivotX="50%"
android:pivotY="50%"
android:duration = "50">
</scale>
</set>
使用Animator
可以轻松达到目的:
findViewById(R.id.next).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Animator scale = ObjectAnimator.ofPropertyValuesHolder(v,
PropertyValuesHolder.ofFloat(View.SCALE_X, 1, 1.5f, 1),
PropertyValuesHolder.ofFloat(View.SCALE_Y, 1, 1.5f, 1)
);
scale.setDuration(1000);
scale.start();
}
});
我这里有这些按钮,我希望它们都有一些点击动画。 长大一点再return恢复正常
这是按钮 xml 代码。
<ImageButton
android:layout_width="165dp"
android:layout_height="60dp"
android:text="next"
android:id="@+id/next"
android:src="@drawable/next"
android:background="@android:color/transparent"
android:layout_alignParentBottom="true"
android:layout_alignRight="@+id/linearLayout"
android:layout_alignEnd="@+id/linearLayout" />
<ImageButton
android:layout_width="170dp"
android:layout_height="60dp"
android:text="confirm"
android:src="@drawable/confirm"
android:background="@android:color/transparent"
android:id="@+id/confirm"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentBottom="true"
/>
这些按钮在一个 activity_main.xml 文件中。
谁能帮我看看我应该怎么做才能实现它?
非常感谢您的宝贵时间。
在按钮的onclick 中,我们使用view.startAnimation()
方法启动我们要使用的动画。我们首先使用 AnimationUtils.loadAnimation()
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
view.startAnimation(AnimationUtils.loadAnimation(context, R.anim.button_click));
}
}
现在在 anim 文件夹下创建一个名为 button_click.xml 或任何你想命名的文件。
anim/button_click.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:fromXScale = "1"
android:toXScale = "0.9"
android:fromYScale = "1"
android:toYScale = "0.9"
android:pivotX="50%"
android:pivotY="50%"
android:duration = "50">
</scale>
</set>
使用Animator
可以轻松达到目的:
findViewById(R.id.next).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Animator scale = ObjectAnimator.ofPropertyValuesHolder(v,
PropertyValuesHolder.ofFloat(View.SCALE_X, 1, 1.5f, 1),
PropertyValuesHolder.ofFloat(View.SCALE_Y, 1, 1.5f, 1)
);
scale.setDuration(1000);
scale.start();
}
});