WEB开发网
开发学院手机开发Android 开发 Android button原理 阅读

Android button原理

 2010-05-31 14:45:00 来源:WEB开发网   
核心提示:/item >8. < item name="android:gravity" >center_vertical|center_horizontal< /item >9. < /style >这里定义了好多style相关的属性,其他的属性都好理解,Andro
/item >

8. < item name="android:gravity" >center_vertical|center_horizontal< /item >

9. < /style >

这里定义了好多style相关的属性,其他的属性都好理解,这个backgroud属性难道仅仅是一个drawable图片?如果仅仅是一个图片的化,怎么能够实现button各种状态下表现出不同背景的功能呢?还是来看看这个drawable到底是什么东西。

到drwable目录中发现这个btn_default原来也是一个xml文件,内容如下:

1. < selector xmlns:android="http://schemas.android.com/apk/res/android" >

2. ? < item android:state_window_focused="false" android:state_enabled="true"

3. android:drawable="@drawable/btn_default_normal" / >

4. ? < item android:state_window_focused="false" android:state_enabled="false"

5. android:drawable="@drawable/btn_default_normal_disable" / >

6. < item android:state_pressed="true"

7. android:drawable="@drawable/btn_default_pressed" / >

8. < item android:state_focused="true" android:state_enabled="true"

9. android:drawable="@drawable/btn_default_selected" / >

10. < item android:state_enabled="true"

11. android:drawable="@drawable/btn_default_normal" / >

12. < item android:state_focused="true"

13. android:drawable="@drawable/btn_default_normal_disable_focused" / >

14. < item

15. android:drawable="@drawable/btn_default_normal_disable" / >

16. < /selector >

其实drawable在Android中有很多种,最普通的就是一个图片。而这里用到的是StateListDrawable。当Android的解析器解析到上面的xml时,会自动转化成一个StateListDrawable类的实例。这个类的一些核心代码如下:

1. public class StateListDrawable extends DrawableContainer {

2. public StateListDrawable()

3. {

4. this(null);

5. }

6.

7. /**

8. * Add a new image/string ID to the set of images.

上一页  1 2 3 4 5  下一页

Tags:Android button 原理

编辑录入:coldstar [复制链接] [打 印]
赞助商链接