Android drawable selector

Android drawable selector

描述

Android 可绘制选择器(drawable selector)是一种可根据不同状态显示不同可绘制对象的 XML 资源。它通常用于实现按钮、列表项等控件的状态变化效果。

可绘制选择器的基本结构

一个可绘制选择器由多个 <item> 元素组成,每个 <item> 元素代表一种状态。<item> 元素的属性包括:

  • android:drawable:要显示的可绘制对象
  • android:state_focused:是否聚焦
  • android:state_pressed:是否按下
  • android:state_checked:是否选中
  • android:state_enabled:是否可用

可绘制选择器的示例

以下是一个简单的可绘制选择器示例:

xml 复制代码
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:drawable="@drawable/button_normal" android:state_pressed="false" />
  <item android:drawable="@drawable/button_pressed" android:state_pressed="true" />
</selector>

在这个示例中,当按钮按下时,可绘制选择器将显示 button_pressed.png 图片,否则将显示 button_normal.png 图片。

使用备份

背景

javascript 复制代码
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/shape_square" android:state_enabled="false"/>
    <item android:drawable="@mipmap/pic_01" android:state_pressed="true"></item>
    <item android:drawable="@mipmap/pic_02" android:state_pressed="false"></item>
</selector>

颜色

javascript 复制代码
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/shape_square" android:state_enabled="false"/>
    <item android:color="@color/pic_01" android:state_pressed="true"></item>
    <item android:color="@color/pic_02" android:state_pressed="false"></item>
</selector>
相关推荐
好的佩奇1 小时前
蓝牙之广播与扫描
android·flutter·蓝牙
传奇开心果编程3 小时前
【Jetpack Compose娓娓道来】第36课:焦点管理与键盘输入——让遥控器、键盘和输入法都“找得到北”
android·kotlin·移动开发·交互·android jetpack·ui框架·声明式ui
hai_android4 小时前
AudioTrack 深度解析:从原理到实战
android·java·kotlin
红尘伴蝶舞4 小时前
从秒开优化到连环崩溃:深入剖析 ViewPager2 在常驻 DialogFragment 中的复用陷阱与自愈方案
android·kotlin
巫山老妖9 小时前
Android 应用架构演进:MVC / MVP / MVVM / MVI (2026)
android·android jetpack
木头左13 小时前
【架构设计】教育类 App 服务端化改造:AI 上移、题库分层与个人题库归属
android·架构设计·系统设计·后端开发·数据库设计
墨狂之逸才13 小时前
USB 的 HOST 和 DEVICE 到底有什么区别?ADB 调试应该选哪个?
android
奶油话梅糖14 小时前
苹果的内核跑上了安卓手机:2,631 Star 的 HakiOS 让 XNU 在 Adreno GPU 上画出 118 帧
android·macos·智能手机
恋猫de小郭14 小时前
Flutter THLC 的 WebView 滚动终于从 70 FPS 提升到 120 FPS
android·前端·flutter
好的佩奇1 天前
Dart 之扩展类型
android·flutter·dart