如何在Android Studio中实现示例图所示的Button按钮效果
这个按钮的核心效果为圆角渐变背景、两侧带图标、带轻微阴影,按以下步骤实现即可:
1. 引入依赖(使用MaterialButton更便捷)
首先确认Module级build.gradle中已引入Material组件库,可直接适配各类样式:
dependencies { implementation 'com.google.android.material:material:1.9.0' // 其余原有依赖保留即可 }
引入后同步项目即可生效。
2. 创建渐变背景Drawable
在res/drawable目录下新建bg_gradient_button.xml,写入如下代码:
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <!-- 圆角大小,可根据需求调整 --> <corners android:radius="28dp" /> <!-- 渐变色配置,颜色值可对照参考图自行调整 --> <gradient android:angle="0" android:startColor="#4A6CF7" android:endColor="#8B5CF6" android:type="linear" /> <!-- 内边距,避免文字和图标贴边 --> <padding android:vertical="12dp" android:horizontal="16dp" /> </shape>
3. 布局中引入Button组件
在对应页面的XML布局中添加MaterialButton控件,代码如下:
<com.google.android.material.button.MaterialButton android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginHorizontal="24dp" android:text="搜索附近地点" android:textColor="@color/white" android:textSize="16sp" android:background="@drawable/bg_gradient_button" <!-- 左侧图标配置,图标可自行导入矢量图到项目 --> app:icon="@drawable/ic_search" app:iconTint="@color/white" app:iconPadding="12dp" <!-- 右侧图标配置 --> app:endIcon="@drawable/ic_arrow_right" app:endIconTint="@color/white" <!-- 阴影效果配置 --> app:elevation="4dp" app:strokeWidth="0dp" />
4. 可选:添加点击状态效果
如果需要按下的反馈效果,在res/drawable下新建bg_button_selector.xml:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true"> <!-- 按下状态的背景,可适当调暗渐变色 --> <shape android:shape="rectangle"> <corners android:radius="28dp" /> <gradient android:angle="0" android:startColor="#3B57D6" android:endColor="#7C3AED" /> <padding android:vertical="12dp" android:horizontal="16dp" /> </shape> </item> <item android:drawable="@drawable/bg_gradient_button" /> </selector>
之后把Button的background属性换成@drawable/bg_button_selector即可。
内容的提问来源于stack exchange,提问作者Muhaimin Ab
相关产品推荐
相关产品推荐

