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怎么使用”有了更深的了解,不妨来实际操作一番吧!这里是恰卡编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
推荐阅读
-
怎么使用Android基准配置文件Baseline Profile方案提升启动速度
-
HTML5如何实现禁止android视频另存为
-
学java好还是学php好?
-
Android如何实现多点触控功能
-
android怎么实现多点触摸应用
-
Android怎么实现手势划定区域裁剪图片
-
android怎么实现简单的矩形裁剪框
-
Android单选多选按钮怎么使用
-
Android中如何利用oncreate获取控件高度或宽度
Android中如何利用oncreate获取控件高度或宽度本篇内容...
-
Android中怎么使用onSaveInstanceState()方法
Android中怎么使用onSaveInstanceState()方法...