Android中使用XML自定义组件各种状态下的背景图片
2012-03-15 17:29
495 查看
需要用到Android的Selector,它可以根据组件的状态显示该状态对应的图片做为显示背景。
把下面的XML文件保存成自己命名的.xml文件,比如list_bg.xml。
注意,这个文件相当于一个背景图片选择器,在系统使用时根据ListView中的列表项的状态来使用相应的背景图片。
什么情况使用什么图片我在下面都进行了说明。
还有,你可以把它看成是一个图片来使用,放于drawable目录下,
配置背景属性android:background="@drawable/list_bg"就能达到你需要的目的了。
源代码ListView列表项背景的默认实现
SDK目录/tools/lib/res/default/drawable/list_selector_background.xml
内容如下:
把下面的XML文件保存成自己命名的.xml文件,比如list_bg.xml。
注意,这个文件相当于一个背景图片选择器,在系统使用时根据ListView中的列表项的状态来使用相应的背景图片。
什么情况使用什么图片我在下面都进行了说明。
还有,你可以把它看成是一个图片来使用,放于drawable目录下,
配置背景属性android:background="@drawable/list_bg"就能达到你需要的目的了。
<?xml version="1.0" encoding="utf-8" ?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_window_focused="false" android:drawable="@drawable/没有焦点时的图片背景" /> <item android:state_focused="true" android:state_pressed="true" android:drawable= "@drawable/非触摸模式下获得焦点并单击时的背景图片" /> <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/触摸模式下单击时的背景图片" /> <item android:state_selected="true" android:drawable="@drawable/选中时的图片背景" /> <item android:state_focused="true" android:drawable="@drawable/获得焦点时的图片背景" /> </selector>
源代码ListView列表项背景的默认实现
SDK目录/tools/lib/res/default/drawable/list_selector_background.xml
内容如下:
<?xml version="1.0" encoding="utf-8"?> <!-- Copyright (C) 2008 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_window_focused="false" android:drawable="@color/transparent" /> <!-- Even though these two point to the same resource, have two states so the drawable will invalidate itself when coming out of pressed state. --> <item android:state_focused="true" android:state_enabled="false" android:state_pressed="true" android:drawable="@drawable/list_selector_background_disabled" /> <item android:state_focused="true" android:state_enabled="false" android:drawable="@drawable/list_selector_background_disabled" /> <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/list_selector_background_transition" /> <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/list_selector_background_transition" /> <item android:state_focused="true" android:drawable="@drawable/list_selector_background_focus" /> </selector>
相关文章推荐
- 【整理】Android中使用XML自定义组件各种状态下的背景图片
- Android中View绘制各种状态的背景图片原理深入分析以及StateListDrawable使用
- 在Android使用XML文件控制按钮文字在各种状态下的颜色
- 使用图片自定义android控件EditText 边框背景
- Android中View(视图)绘制不同状态背景图片原理深入分析以及StateListDrawable使用详解
- Android中View(视图)绘制不同状态背景图片原理深入分析以及StateListDrawable使用详解
- android 使用xml制作背景图片(shape的用法)
- Android中View绘制不同状态背景图片原理深入分析以及StateListDrawable使用详解
- Android中View(视图)绘制不同状态背景图片原理深入分析以及StateListDrawable使用详解
- Android中View(视图)绘制不同状态背景图片原理深入分析以及StateListDrawable使用详解
- Android中View(视图)绘制不同状态背景图片原理深入分析以及StateListDrawable使用详解
- Android中View绘制不同状态背景图片原理以及StateListDrawable使用详解
- 使用图片自定义android控件EditText 边框背景
- Android中View(视图)绘制不同状态背景图片原理深入分析以及StateListDrawable使用详解
- Android中View(视图)绘制不同状态背景图片原理深入分析以及StateListDrawable使用详解
- Android中View(视图)绘制不同状态背景图片原理深入分析以及StateListDrawable使用详解
- Android Toast 自定义背景、图片 随心使用
- android应用面试宝典(下);用自定义组件控制循环组件使用bug还添加标志显示答案标志位;通过包名读取配置文件AndroidManifest.xml
- Android使用xml自定义图片实例详解
- Android中View(视图)绘制不同状态背景图片原理深入分析以及StateListDrawable使用详解