Android中的selector怎么使用

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怎么使用”有了更深的了解,不妨来实际操作一番吧!这里是恰卡编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

发布于 2022-04-11 21:18:11
收藏
分享
海报
0 条评论
23
上一篇:Android中如何加载GIF图 下一篇:Android中如何利用多线程重复启动与停止服务
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码