这是一个按钮 Select 器,正常时显示为红色,按下时显示为灰色.

我想问一下,如何进一步直接修改代码,以便按下时文本的大小和 colored颜色 也可以改变?非常感谢!

<item android:state_pressed="true" >         
    <shape xmlns:android="http://schemas.android.com/apk/res/android"> 
        <stroke android:width="2dp" android:color="@color/black" />
        <solid android:color="@color/grey"/>
        <padding android:left="5dp" android:top="2dp" 
            android:right="5dp" android:bottom="2dp" /> 
        <corners android:radius="5dp" /> 
    </shape>    
</item>

<item>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"> 
        <stroke android:width="2dp" android:color="@color/black" />
        <solid android:color="#FF6699"/>
        <padding android:left="5dp" android:top="2dp" 
            android:right="5dp" android:bottom="2dp" /> 
        <corners android:radius="5dp" /> 
    </shape>
</item>

推荐答案

你只需要在布局文件中设置selector/button.

<Button
     android:id="@+id/button1"
     android:background="@drawable/selector_xml_name"
     android:layout_width="200dp"
     android:layout_height="126dp"
     android:text="Hello" />

就这么定了.

编辑

以下是drawable目录中的button_effect.xml个文件

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/numpad_button_bg_selected" android:state_selected="true"></item>
    <item android:drawable="@drawable/numpad_button_bg_pressed" android:state_pressed="true"></item>
    <item android:drawable="@drawable/numpad_button_bg_normal"></item>

</selector>

在这里,你可以看到有3个可绘制的,你只需要把这个button_effect样式放到你的button,正如我在上面写的.你只需要把selector_xml_name换成button_effect.

Android相关问答推荐

Health Connect(Android 14):需要更新应用程序才能继续与Health Connect同步

java.lang. IllegalState异常:CompositionLocal LifecycleOwner不存在

ava.lang. ClassNotFound异常:没有找到类com.example.myapp.MyApp"

使用mvvm和jetpack的Android中的视图模型compose

如何将Hilt添加到Android Studio中的Kotlin项目中?

有没有办法知道每台安卓设备上的通知限制?

组成底部导航栏,自定义形状,周围透明

Jetpack Compose:如何将浮动操作按钮上方的子按钮居中对齐?

无法加载类';com.android.build.api.extension.AndroidComponentsExtension';

Lateinit变量结果始终以kotlin格式未初始化

如何将 Room Persistence 依赖项正确添加到我的 Jetack Compose Android 应用程序

使用 List 和 LazyColumn 重新组合所有项目

具有数据库和升级潜力的移动应用程序开发(Android)供朋友使用

ArrayList 上的 Android intent.getParcelableArrayListExtra 引发 Nullpointer 异常

Jetpack 将 Grid 与基于大小的自适应列数组合在一起

从 Firebase 云存储中获取照片会导致 Android Jetpack Compose 闪烁

删除项目时延迟列不更新

我的 react native 项目的发布签名 apk 没有在设备中打开,而且它创建的尺寸非常小

在 Jetpack Compose 中找不到 Path 的减号()

预览必须是顶级声明或具有默认构造函数的顶级类