[转]android的selector,背景选择器
本文转自:http://dev.10086.cn/cmdn/wiki/index.php?doc-view-6014.html
首先android的selector是在drawable/xxx.xml中配置的。
先看一下listview中的状态:
把下面的XML文件保存成你自己命名的.xml文件(比如list_item_bg.xml),在系统使用时根据ListView中的列表项的状态来使用相应的背景图片。
drawable/list_item_bg.xml
- <?xml version="1.0" encoding="utf-8" ?>
- <selector xmlns:android="http://schemas.android.com/apk/res/android">
- <!-- 默认时的背景图片 -->
- <item android:drawable="@drawable/pic1" />
- <!-- 没有焦点时的背景图片 -->
- <item android:state_window_focused="false"
- android:drawable="@drawable/pic1" />
- <!-- 非触摸模式下获得焦点并单击时的背景图片 -->
- <item android:state_focused="true" android:state_pressed="true"
- android:drawable= "@drawable/pic2" />
- <!-- 触摸模式下单击时的背景图片 -->
- <item android:state_focused="false" android:state_pressed="true"
- android:drawable="@drawable/pic3" />
- <!--选中时的图片背景 -->
- <item android:state_selected="true"
- android:drawable="@drawable/pic4" />
- <!--获得焦点时的图片背景 -->
- <item android:state_focused="true"
- android:drawable="@drawable/pic5" />
- </selector>
使用些xml文件:第一种是在listview中配置android:listSelector="@drawable/list_item_bg
或者在listview的item中添加属性android:background=“@drawable/list_item_bg"即可实现,或者在Java代码中使用:Drawable drawable = getResources().getDrawable(R.drawable.list_item_bg);
ListView.setSelector(drawable);同样的效果。
但是这样会出现列表有时候为黑的情况,需要加上:android:cacheColorHint="@android:color/transparent"
使其透明。
其次再来看看Button的一些背景效果:
android:state_selected是选中
android:state_focused是获得焦点
android:state_pressed是点击
android:state_enabled是设置是否响应事件,指所有事件
根据这些状态同样可以设置button的selector效果。也可以设置selector改变button中的文字状态。
以下就是配置button中的文字效果:
drawable/button_font.xml
- <?xml version="1.0" encoding="utf-8"?>
- <selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_selected="true" android:color="#FFF" />
- <item android:state_focused="true" android:color="#FFF" />
- <item android:state_pressed="true" android:color="#FFF" />
- <item android:color="#000" />
- </selector>
Button还可以实现更复杂的效果,例如渐变啊等等。
- drawable/button_color.xml
- <?xml version="1.0" encoding="utf-8"?>
- <selector xmlns:android="http://schemas.android.com/apk/res/android"> /
- <item android:state_pressed="true">//定义当button 处于pressed 状态时的形态。
- <shape>
- <gradient android:startColor="#8600ff" />
- <stroke android:width="2dp" android:color="#000000" />
- <corners android:radius="5dp" />
- <padding android:left="10dp" android:top="10dp"
- android:bottom="10dp" android:right="10dp"/>
- </shape>
- </item>
- <item android:state_focused="true">//定义当button获得 focus时的形态
- <shape>
- <gradient android:startColor="#eac100"/>
- <stroke android:width="2dp" android:color="#333333" color="#ffffff"/>
- <corners android:radius="8dp" />
- <padding android:left="10dp" android:top="10dp"
- android:bottom="10dp" android:right="10dp"/>
- </shape>
- </item>
- </selector>
最后,需要在包含 button的xml文件里添加两项。假如是 main.xml 文件,
我们需要在<Button />里加两项。
android:focusable="true"
android:backgroud="@drawable/button_color"
这样当你使用Button的时候就可以甩掉系统自带的那黄颜色的背景了,实现个性化的背景,配合应用的整体布局非常之有用啊。
[转]android的selector,背景选择器相关推荐
- android的 selector 背景选择器和 shape 详解(转)
转自:http://blog.csdn.net/chengyingzhilian/article/details/7277106 感谢原作者 ============================= ...
- [转]android selector 背景选择器
关于listview和button都要改变android原来控件的背景,在网上查找了一些资料不是 很全,所以现在总结一下android的selector的用法. 首先android的selector是 ...
- 浅谈android的selector,背景选择器
2019独角兽企业重金招聘Python工程师标准>>> 关于listview和button都要改变android原来控件的背景,在网上查找了一些资料不是很全,所以现在总结一下andr ...
- 背景选择器selector替换按钮默认背景
一.效果 正常状态 获取焦点或按下 按钮的背景图片是.9图,.9图的制作过程,见下面博文 http://blog.csdn.net/zengmingen/article/details/5019324 ...
- 碎步一:根据用户喜好选择不同背景图(背景选择器)
本文章主要功能是,用户根据自己的爱好选择背景图片(此应用可拓展为,定时更新手机桌面的背景图片,此处暂不实现,也许以后有空会进行实现). 言归正传,下面说下主要的实现原理和相关技术,首先设置屏幕为全屏显 ...
- Android使用selector点击按钮文字变色
需求:开发中按钮按压时字体颜色变为灰色 松开后恢复 实现:1.res下新建color文件夹(放drawable文件夹下也可),创建文件btn_text_color.xml: <selector ...
- Android ListView 自定义背景后 滚动时的背景变黑问题
ListView是常用的显示控件,默认背景是和系统窗口一样的透明色,如果给ListView加上背景图片,或者背景颜色时,滚动时listView会黑掉,原因是,滚动时,列表里面的view重绘时,用的依旧 ...
- Android Studio Button背景颜色无法修改
关于Android Studio Button背景无法修改,一直呈现亮紫色 作为安卓初学者,发现Button的背景颜色无法修改,也没法链接到drawable的样式xml文件,前前后后折腾了好久,查阅了 ...
- android自定义滚轴选择器_Android自定义控件实战—滚动选择器PickerView
手机里设置闹钟需要选择时间,那个选择时间的控件就是滚动选择器,前几天用手机刷了MIUI,发现自带的那个时间选择器效果挺好看的,于是就自己仿写了一个,权当练手.先来看效果: 效果还行吧?实现思路就是自定 ...
最新文章
- mysql 的 VARCHAR VARCHAR2
- Py:python利用easygui实现最简单GUI带你学习区块链技术的发展和由来
- 企业日志分析ELK(Logstash+Elasticsearch+Kibana)介绍及搭建
- SAP Spartacus organization unit list抬头显示所有unit的标题实现
- 业务流程、长周期服务和微服务
- Sql Server和oracle的函数区别总结
- python sklearn svm 权重_sklearn svm基本使用
- tfs2015 生成与发布 配置
- 《Java编程思想》笔记10------字符串
- java image to base64_Java实现base64图片编码数据转换为本地图片的方法
- 白话SpringCloud | 第三章:服务注册与发现-高可用配置(Eureka)-下
- 机器学习初级入门(一)感知机
- C#语法基础(三)----窗体设计
- JDK动态代理的实现
- hashmap java 排序_Java 对HashMap进行排序的三种常见方法
- 音视频入门系列-字幕篇(SSA ASS)
- 基于Python的淘宝用户行为数据分析
- b哩b哩视频弹幕爬虫程序(python)
- 【网关】什么是网关、网桥和交换机(集线器、网桥、交换机、路由器、网关大解析)
- camel发布多个服务
热门文章
- 如何使用BigDecimal?
- RateLimiter 源码分析(Guava 和 Sentinel 实现)
- 有必要将所有机器学习算法都实现一遍吗?
- 萌宝1天陪博士父母赶2场毕业典礼走红!上午是妈妈博士毕业,下午是爸爸......
- 为了杀蚊子,这位博士用树莓派DIY了一把激光枪!网友:伤到人怎么办?
- 达摩院清华博士研发了一个AI摸鱼神器!有了它,老板都不好意思打扰你
- 最新!2020中国高校毕业生薪资报告出炉
- 导师:顶会论文3天都复现不出来?你退学吧!
- 5分钟!用Java实现目标检测 | PyTorch
- 这本1900页的机器学习数学全书火了!完整版开放下载