[Android]如何在Android studio中增加一个selector资源(用于button的背景设置)

Android studio版本:3.5.2

SDK Platforms版本: Android 10.0 (API 29)

SDK Platform-Tools版本: 29.0.5

SDK Tools版本:26.1.1

 

 1. 首先在app/res中增加selector:

在工程的文件树中选择“app->res”,点击鼠标右键,在弹出菜单中选择“New->Android resource file”,然后在弹出的“New Resource File”对话框中,填写selector的文件名,将“Resource Type”改为“Drawable”,将“Root element”改为“selector”,“Directory name”指定了要创建的selector文件所在的文件夹。点击OK即可看到“app->res->drawable”中已经创建了新的selector文件。

2. 编辑selector文件: 

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/colorCategoryButtonBKSelected"/>
    <item android:state_selected="true" android:drawable="@drawable/colorCategoryButtonBKSelected"/>
    <item android:drawable="@drawable/colorCategoryButtonBKDefault"/>
</selector>

这个selector表示在按钮按下和选中时显示colorCategoryButtonBKSelected所指定的颜色,默认为colorCategoryButtonBKDefault颜色。

注意:这里不能直接设置属性item android:color=xxx,这样在运行时会报错。

需要在res->values->colors.xml中设置drawable,然后在item中设置android:drawable属性:

<resources>
    <color name="colorPrimary">#008577</color>
    ...
    <drawable name="colorCategoryButtonBKDefault">#000000</drawable>
    <drawable name="colorCategoryButtonBKSelected">#999900</drawable>
</resources>

3. Button的状态:

默认显示colorCategoryButtonBKDefault颜色;点击时显示colorCategoryButtonBKSelected颜色;当button设置setSelected(true)时才会保持显示colorCategoryButtonBKSelected颜色。

发布了46 篇原创文章 · 获赞 28 · 访问量 23万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章