如何在 android studio 中制作弹出按钮动画
how to do pop up button animation in android studio
在我正在创建的计算器应用程序中,我希望按钮在单击按钮时以弹出方式(按比例放大)进行动画处理。但这不是问题。只要用户按住按钮,我希望按钮保持放大(更大的尺寸)。只有当用户释放按钮时,它才应该回到原来的大小(小尺寸)。同样,只要用户按住按钮,按钮颜色就必须从白色变为蓝色(释放时变回白色)。有什么办法吗?我在 android 工作室不太擅长动画。所以请尽量用通俗易懂的话解释一下。
我还附上了我制作原型的视频来说明它。
点击下面的link
https://drive.google.com/file/d/13B8LAuNW1ymhmliw52BEIkMbJAJQRbfw/view?usp=sharing
您应该创建一个 xml 文件,将选择器作为根元素。此元素选择基于当前状态(如按下、聚焦或启用)的形状。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_enabled="false"
android:drawable="@drawable/button_disabled" />
<item
android:state_pressed="true"
android:state_enabled="true"
android:drawable="@drawable/button_pressed" />
<item
android:state_focused="true"
android:state_enabled="true"
android:drawable="@drawable/button_focused" />
<item
android:state_enabled="true"
android:drawable="@drawable/button_enabled" />
</selector>
如果您想要具有不同颜色和大小的不同形状,您必须像这样创建一个新的可绘制对象:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<gradient
android:startColor="#00CCFF"
android:centerColor="#0000CC"
android:endColor="#00CCFF"
android:angle="90"/>
<padding android:left="7dp"
android:top="7dp"
android:right="7dp"
android:bottom="7dp" />
<stroke
android:width="2dip"
android:color="#FFFFFF" />
<corners android:radius= "8dp" />
</shape>
如果您想更改尺寸,可以使用属性尺寸。
那么你必须在mainActivity的onCreate文件中实现点击监听,并将按钮的按下状态设置为true。
简而言之,您必须为按钮创建一个可绘制选择器,为 pressed="true" 状态创建两个可绘制选择器,为 pressed="false" 创建一个选择器。
这里我举个例子:
在我正在创建的计算器应用程序中,我希望按钮在单击按钮时以弹出方式(按比例放大)进行动画处理。但这不是问题。只要用户按住按钮,我希望按钮保持放大(更大的尺寸)。只有当用户释放按钮时,它才应该回到原来的大小(小尺寸)。同样,只要用户按住按钮,按钮颜色就必须从白色变为蓝色(释放时变回白色)。有什么办法吗?我在 android 工作室不太擅长动画。所以请尽量用通俗易懂的话解释一下。
我还附上了我制作原型的视频来说明它。 点击下面的link https://drive.google.com/file/d/13B8LAuNW1ymhmliw52BEIkMbJAJQRbfw/view?usp=sharing
您应该创建一个 xml 文件,将选择器作为根元素。此元素选择基于当前状态(如按下、聚焦或启用)的形状。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_enabled="false"
android:drawable="@drawable/button_disabled" />
<item
android:state_pressed="true"
android:state_enabled="true"
android:drawable="@drawable/button_pressed" />
<item
android:state_focused="true"
android:state_enabled="true"
android:drawable="@drawable/button_focused" />
<item
android:state_enabled="true"
android:drawable="@drawable/button_enabled" />
</selector>
如果您想要具有不同颜色和大小的不同形状,您必须像这样创建一个新的可绘制对象:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<gradient
android:startColor="#00CCFF"
android:centerColor="#0000CC"
android:endColor="#00CCFF"
android:angle="90"/>
<padding android:left="7dp"
android:top="7dp"
android:right="7dp"
android:bottom="7dp" />
<stroke
android:width="2dip"
android:color="#FFFFFF" />
<corners android:radius= "8dp" />
</shape>
如果您想更改尺寸,可以使用属性尺寸。 那么你必须在mainActivity的onCreate文件中实现点击监听,并将按钮的按下状态设置为true。 简而言之,您必须为按钮创建一个可绘制选择器,为 pressed="true" 状态创建两个可绘制选择器,为 pressed="false" 创建一个选择器。
这里我举个例子: