首页 > 学院 > 开发设计 > 正文

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

2019-11-07 23:39:37
字体:
来源:转载
供稿:网友

一、常用修改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>


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表