更换android控件默认样式
android的空间样式主要包括控件各种状态下背景图片或颜色,控件中字体颜色。
这里解释一下个状态是什么意思,android中控件有如下几个状态
普通
state_enabled 是否有效
state_focused 是否聚焦
state_pressed 是否被按下
其中state_focused 和 state_pressed 可自由有如下4种组合
android:state_focused="true" android:state_pressed="true"
android:state_focused="true" android:state_pressed="false"
android:state_focused="false" android:state_pressed="true"
android:state_focused="false" android:state_pressed="false"
可以看出android控件有着很多不同状态,在不同的状态下有着不同的样式,比如不同的背景,请注意android控件的背景绝大部份是使用图片表示。
另外android中控件在屏幕中有两种模式,分别是:
1 普通模式
2 触摸模式 touchmode
根据经验在控件开始显示时,处于普通模式下,当使用轨迹球或者方向键都不会切换模式,但是当你使用手指触摸屏幕时,控件会自动切换到触控模式,离开屏幕后后再使用轨迹球或者方向键便有切换到普通模式,请注意在切换的过程中有时候会碰到问题,比如说离开屏幕后滚动轨迹球无效,或者重新使用屏幕时点击无反应,这个应该是android一个不足的地方,编程时应当注意。
在这两个模式下,前面说的状态有不同表现,在普通模式下,一般在按下之前必须先选中,而在touchmode下,并不需要,在响应用户操作时有不同的表现。
那什么是控件的样式呢,这个包括很多,控件大小,背景,前景,是否能选中,点击等。
比如说listview中默认是黑色,选中时为亮黄色,很多朋友肯定想换掉它,那有没有方法呢。
答案是肯定的,但是需要自己定义新的样式也就是style,然后在使用控件时使用自定义的style。
经过我们的测试,大部分控件的样式都可以自定义,但是有少部分尚不可行,比如说tabActivity的标签头选中时候的背景,menu的背景似乎都不能改变,因为它们的背景图片都被硬编码进系统了,无法通过接口设置,但是menu有个办法绕过,那就是根本不使用系统menu,我们拦截住menu按键事件,在监听器中实现自己的menu,那么就可以随心所欲了。
作者“ljbal”
相关新闻>>
- 发表评论
-
- 最新评论 更多>>