day day up--Android背景选择器selector的使用

                在Android开发中,当某个元素例如Button或者ImageView获得焦点时,我们需要它显示出获得焦点(focused)、被按下(pressed)等等的效果,这时候我们可以使用selector选择器来实现。

       Android中配置selector的方法很简单,这里以Button元素的背景选择为例来介绍。准备两张图片(一张未获得焦点btn.png和一张获得焦点的图片btn_on.png),新建一个selector配置的文件例如sl_btn.xml,它们都存放于res/drawable/文件夹内。然后配置Button控件的属性代码如下所示:

  <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/sl_btn"/>

还可以在Java代码中实现,R.drawable.sl_btn引用。其中属性android:background设置为配置文件sl_btn.xml,这点很容易理解,使得Button的背景由配置文件sl_btn.xml来控制,具有很高的灵活性。然后配置sl_btn.xml文件,如下代码所示:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/btn_on" android:state_focused="true"/>
    <item android:drawable="@drawable/btn"/>
</selector>


该选择器有两个item,android:drawable属性表示背景图片,android:state_focused属性为true表示当控件状态是获得焦点时,呈现该item所代表的选择,默认为未获得焦点的,即下面的item的背景为未获得焦点的图片btn.png,上面的item的背景为获得焦点的图片btn_on.png。这样就可以呈现出按钮的动态效果。

这只是简单的selector配置,除了获得焦点,还可以配置其他属性,例如被按下android:state_pressed、被选中android:state_selected等等,可以配置各种状态下的效果。其实在背景切换呈现也就是选择器工作的过程中可以通过shape实现很多动画效果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值