Android中的selector怎么使用
Android中的selector怎么使用
本篇内容主要讲解“Android中的selector怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android中的selector怎么使用”吧!
Android selector的详解
前言:
StateListDrawable 是一种通过XML文件来定义的drawable,使用几个不同的图片来呈现同一个图形,通过object的状态来实现切换。例如,一个Button有几个不同的状态(按压,获取焦点等等),这种情况下,通过使用 state list drawable,你就可以实现在不同的状态下使用不同的背景图片。
你可以在一个XML文件中描述state list。通过在根节点selector下定义一个item元素来添加每个图形。每一各item中使用不同的状态属性来定义不用的drawable。
当每一次状态改变的时候,state list都会从上到下被遍历一遍,第一个与当前state相匹配的item将会被使用—- 这个选择并不是作出“最匹配”结果,而是简单的找到第一个匹配的状态。
selector一般都是用来作为有状态改变的View的背景,以此来达到当用户对View进行操作,导致View状态改变时,作出改变,让用户感知View的状态变化。
官方说明
文件位置:res/drawable/filename.xml
编译资源类型:StateListDrawable
资源引用:
In Java: R.drawable.filename
In XML: @[package:]drawable/filename
语法:
<?xmlversion="1.0"encoding="utf-8"?><selectorxmlns:android="http://schemas.android.com/apk/res/android"android:constantSize=["true"|"false"]android:dither=["true"|"false"]android:variablePadding=["true"|"false"]><itemandroid:drawable="@[package:]drawable/drawable_resource"android:state_pressed=["true"|"false"]android:state_focused=["true"|"false"]android:state_hovered=["true"|"false"]android:state_selected=["true"|"false"]android:state_checkable=["true"|"false"]android:state_checked=["true"|"false"]android:state_enabled=["true"|"false"]android:state_activated=["true"|"false"]android:state_window_focused=["true"|"false"]/></selector>
更多详细说明,请查阅xsoftlab
实际使用
下面做一个简单的实例,对Button的背景根据状态做一下处理
XML文件
selector_ts.xml
<?xmlversion="1.0"encoding="utf-8"?><selectorxmlns:android="http://schemas.android.com/apk/res/android"><itemandroid:drawable="@color/pink"android:state_pressed="true"/><itemandroid:drawable="@color/yellow"android:state_selected="true"/><itemandroid:drawable="@drawable/shaperect"android:state_enabled="false"/><itemandroid:drawable="@color/stone"android:state_enabled="true"/></selector>
主布局文件(activity_main.xml)
<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:focusable="true"android:focusableInTouchMode="true"android:orientation="vertical"android:padding="10dp"tools:context="mraz.com.tabdemo.MainActivity"><Buttonandroid:id="@+id/bt_content"android:layout_width="match_parent"android:layout_height="300dp"android:background="@drawable/selector_ts"/><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="50dp"android:orientation="horizontal"><Buttonandroid:id="@+id/bt_selected"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:text="Select"android:textAllCaps="false"/><Buttonandroid:id="@+id/bt_disable"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:text="Disable"android:textAllCaps="false"/><Buttonandroid:id="@+id/bt_pressed"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:text="Press"android:textAllCaps="false"/></LinearLayout></LinearLayout>
到此,相信大家对“Android中的selector怎么使用”有了更深的了解,不妨来实际操作一番吧!这里是恰卡编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
推荐阅读
-
我的世界windows版怎么下载手机版
-
android(如何快速开发框架 小米note开发版MIUI,安卓6.0,怎么安装Xposed框架)
稳定版,你必须先根除。你上网搜索安卓可以叫别人s框架,对方可以把框架做成jar包,把这个jar包加载到项目目录的libs文件中使...
-
android(studio 虚拟机启动不了 android studio可以当模拟器用吗)
androidstudio可以当模拟器用吗?AmdCUP引导模拟器有点复杂。雷电模拟器上的抖音怎么登录不上?不是,闪电模拟调用...
-
从实践中学习手机抓包与数据分析(android 手机抓包app)
android手机抓包app?netcapture抓包精灵app(手机抓包工具)又名sslcapture,是什么专业的安卓手机抓...
-
android(studio全局搜索 android studio怎么看app界面)
androidstudio怎么看app界面?在设备桌面点击运用直接进入到App界面,就也可以参与其他你的操作了。android-...
-
怎么把android框架源代码拉到本地(android studio如何运行别人的源代码)
androidstudio如何运行别人的源代码?androidstudio点击刚建在列表中你选择导入module,导入即可在用...
-
android(studio2022年使用教程 怎么安装Android studio详细教程)
怎么安装Androidstudio详细教程?androidstudio中haxm直接安装的方法追加:1、简单的方法打开Andr...
-
怎么使用Android基准配置文件Baseline Profile方案提升启动速度
怎么使用Android基准配置文件Baseline Profile方案提升启动速度...
-
HTML5如何实现禁止android视频另存为
HTML5如何实现禁止android视频另存为今天小编给大家分享一...
-
学java好还是学php好?