如何在android studio中制作弹出按钮动画

suzh9iv8  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(714)

在我正在创建的计算器应用程序中,我希望按钮在单击时以弹出方式(按比例放大)显示动画。但这不是问题所在。我希望按钮保持放大(更大的大小),只要用户按住按钮。只有当用户释放按钮时,它才应该恢复到原来的大小(小尺寸)。同样,只要用户按住按钮,按钮的颜色就必须从白色变为蓝色(松开时返回白色)。有什么办法吗?我不太擅长安卓工作室的动画。所以请尽量用简单的语言来解释。
我还附上一个视频,我为原型来说明它。单击下面的链接https://drive.google.com/file/d/13b8launw1ymhmliw52beikmbjajqrbfw/view?usp=sharing

643ylb08

643ylb081#

您应该创建一个以选择器作为根元素的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”创建两个可绘制的选择器。
这里我举一个例子:https://stackoverflow.com/a/29848987/13198061

相关问题