有些时候需要对一些控件的样式进行自定义,但是控件自带的属性修改的效果并不理想,这就需要我们自定义一些样式去修改控件样式,下面介绍自定义样式的方法。
以Button为例,我们可以修改Button的形状,颜色,圆角,甚至是渐变色,下面一一介绍。
首先,在drawable资源文件夹里新建一个style.xml的资源文件,res/drawable右键/new/Drawable resource file/命名为style/ok,即可。
下面我们看一下selector下面的item的各个属性:
属性 解释 android:color 颜色值 android:state_pressed 是否可以触摸 android:state_focused 是否能获取焦点 android:state_hovered 鼠标(指针)移动到该位置时是否触发事件 android:state_checkable “true”表示可勾选状态时使用;“false”表示非可 勾选状态使用、(只对能切换可勾选—非可勾选的构件有用 android:state_checked “true”表示已经被勾选状态时;“false”表示没有被勾选状态使用、(只对能切换可勾选—非可勾选的构件有用 android:state_first android:state_middle android:state_last android:state_activated -true 被激活时显示图片 ;false未激活时图片 android:state_active 被激活的条件,true为可以被激活,false是不可以被激活 android:state_selected 是否被选择状态 android:drawable 如果引用的话,selector必须是一个@drawable引用,代码中也必须是R.drawable android:state_window_focused 是否窗口聚焦 android:state_accelerated 硬件加速为true的图片 android:state_enabled 是否可用,不可用状态则不可对其操作 android:state_single true 只有一个元素显示图片 android:state_drag_can_accept true 能够drop 或者 drag 时图片
下面代码可以用于Button的点击效果样式的改变
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 当前窗口失去焦点时 -->
<item android:color="@android:color/black" android:state_window_focused="false" />
<!-- 不可用时 -->
<item android:color="@android:color/background_light" android:state_enabled="false" />