如何在 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" 创建一个选择器。

这里我举个例子: