Android Material Buttons

前言

Google Material Design 的文档中提到:“当按钮被触摸时应该给与用户相应的反馈”,现在有了compat支持库实现这种效果将会非常简单。

添加资源

将最新的appcompat库添加到您的项目中

dependencies {
    //replace X.X.X with the latest version
    compile 'com.android.support:appcompat-v7:X.X.X'
}

Activity必须继承AppCompatActivity

public class ButtonActivity extends AppCompatActivity {
...
}

将button添加到布局文件

<Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/action_click_me" />

这样,你的App就拥有了一个基于材料设计的按钮

样式

要应用您的自定义颜色,您可以在styles.xml中定义按钮样式

colorButtonNormalcolorControlHighlight添加到您的主题中

这将为应用中的所有按钮应用相同的设计

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    ...
    <item name="colorButtonNormal">@color/colorPrimary</item>
    <item name="colorControlHighlight">@color/colorAccent</item>
</style>

如果你想单独设置按钮的样式,可以在styles.xml中创建一个单独按钮主题

<style name="PrimaryButton" parent="Theme.AppCompat">
    <item name="colorButtonNormal">@color/colorPrimary</item>
    <item name="colorControlHighlight">@color/colorAccent</item>
</style>

并在您的按钮上引用该主题

<Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/action_click_me"
    android:theme="@style/PrimaryButton" />

或者,如果您的目标是API 21+(5.0),您可以通过直接将android:backgroundTint添加到按钮来设置背景颜色,但请注意,这在旧版本中不起作用

扁平化样式按钮

在styles.xml中创建扁平化样式按钮的主题

<style name="PrimaryFlatButton" parent="Theme.AppCompat.Light">
    <item name="android:buttonStyle">@style/Widget.AppCompat.Button.Borderless.Colored</item>
    <item name="colorControlHighlight">@color/colorAccent</item>
    <item name="colorAccent">@color/colorPrimary</item>
</style>

并在您的按钮上引用样式

<Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/button_normal"
    android:theme="@style/PrimaryFlatButton" />

这样就得到了一个扁平化样式的按钮

原文连接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值