v7修改Button颜色并保持默认的点击效果


一、常用修改Button颜色并设置点击效果方法


Android中Button的默认颜色为灰色,并且带有默认的点击效果,在5.0以上的系统还有涟漪的效果。通常在开发时我们都会修改Button的颜色,最常用的方式就是修改Button的背景颜色,即“android:background”;只是修改简单的修改背景颜色的话Button就没有点击效果,这时我们一般会使用selector来实现点击效果;这样处理不仅会增加工作量,也会丢失掉5.0以上系统的涟漪效果。


二、使用Style修改Button颜色并保持默认点击效果

AppCompact中提供的按钮有5种Style:

<style name="Widget.AppCompat.Button" parent="Base.Widget.AppCompat.Button"/>
	默认的状态  背景颜色属性:colorButtonNormal 文字颜色属性:黑色
<style name="Widget.AppCompat.Button.Colored" parent="Base.Widget.AppCompat.Button.Colored"/>
	背景颜色属性:colorAccent 文字颜色属性:白色

<style name="Widget.AppCompat.Button.Borderless" parent="Base.Widget.AppCompat.Button.Borderless"/>
	背景颜色属性:透明  文字颜色属性:白色

<style name="Widget.AppCompat.Button.Borderless.Colored" parent="Base.Widget.AppCompat.Button.Borderless.Colored"/>
	背景颜色属性:透明 文字颜色属性:colorAccent

<style name="Widget.AppCompat.Button.Small" parent="Base.Widget.AppCompat.Button.Small"/>
		背景颜色属性:colorButtonNormal 文字颜色属性:黑色

如何修改背景颜色呢?


在styles.xml文件中新建Style,继承应用Style,在其中设置buttonStyle,并通过相应的属性修改Button的背景色或文字颜色然后在需要修改的Button中添加android:theme属性,引用新建的Style即可

<style name="AutoButton" parent="AppTheme">
    <item name="buttonStyle">@style/Widget.AppCompat.Button</item>
    <item name="colorButtonNormal">@color/colorRed</item>
</style>
在layout文件中使用:
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button"
android:theme="@style/ AutoButton " />


除此之外在开发过程中还遇到了其他的一些需求。比如说修改所有Button的radius.

目前只找到了全局修改Button圆角大小的方法

在dimes.xml文件中复写abc_control_corner_material的值,可以修改应用内所有Button的圆角大小:

<dimen name="abc_control_corner_material" tools:override="true">8dp</dimen>



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值