更换Android控件默认样式


Android的空间样式主要包括控件各种状态下背景图片或颜色,控件中字体颜色。

这里解释一下个状态是什么意思,android中控件有如下几个状态
   普通
   state_enabled 是否有效
   state_focused   是否聚焦
   state_pressed   是否被按下
其中state_focused 和 state_pressed 可自由有如下4种组合 【6688电子商务网站 www.6688.cc 】

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,那么就可以随心所欲了。

=============================================

【博主的话】以上的控件状态一说就解释了为什么类似

android:state_focused="true"
android:state_pressed="false"
android:drawable="@drawable/onfocusimage"

onfocusimage只能在程序第一次装入的时候才能显示。

key: 通过方向键的选中,才能激发这个状态!

相关内容