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

Android Button 原理

 2010-11-05 00:56:20 来源:WEB开发网   
核心提示:/item>8. < item name="android:gravity">center_vertical|center_horizontal< /item>9. < /style>这里定义了好多style相关的属性,其他的属性都好理解,Android B
/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 [复制链接] [打 印]
赞助商链接