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

Android button原理

 2010-05-31 14:45:00 来源:WEB开发网   
核心提示:在Android中Button是非常常用的一个View控件, 原本以为Button实现的代码肯定很多,但是看了原来着实吃了一惊.Button的源码几乎仅仅对继承的TextView类做了一个小小的修改, 仅仅是加了一个Style. 一个Style就能够实现Button的显示效果样式么?Android的Style机制真的很

Android中Button是非常常用的一个View控件, 原本以为Button实现的代码肯定很多,但是看了原来着实吃了一惊.Button的源码几乎仅仅对继承的TextView类做了一个小小的修改, 仅仅是加了一个Style. 一个Style就能够实现Button的显示效果样式么?Android的Style机制真的很强大.

首先来看一下ButtonView的实现代码:

1. * < p >< strong >XML attributes< /strong >< /p >

2. * < p >

3. * See [email protected] android.R.styleable#Button Button Attributes},

4. * [email protected] android.R.styleable#TextView TextView Attributes},

5. * [email protected] android.R.styleable#View View Attributes}

6. * < /p >

7. */

8. ublic class Button extends TextView {

9. public Button(Context context) {

10. this(context, null);

11. }

12.

13. public Button(Context context, AttributeSet attrs) {

14. this(context, attrs, com.android.internal.R.attr.buttonStyle);

15. }

16.

17. public Button(Context context, AttributeSet attrs, int defStyle) {

18. super(context, attrs, defStyle);

19. }

可以看到,Button继承了TextView之后,仅仅是添加了一个默认的Style —

com.android.internal.R.attr.buttonStyle

我们知道,button其实在TextView的基础之上增加了按钮的背景效果以及按钮按下去的press效果。这么一个Style文件可以搞定这件事情么?顺着这个style找下去,在Android的源码中找到style.xml,并找到相关的定义:

1. < style name="Widget.Button" >

2. < item name="android:background" >@android:drawable/btn_default< /item >

3. < item name="android:focusable" >true< /item >

4. < item name="android:clickable" >true< /item >

5. < item name="android:textSize" >20sp< /item >

6. < item name="android:textStyle" >normal< /item >

7. < item name="android:textColor" >@android:color/button_text<

1 2 3 4 5  下一页

Tags:Android button 原理

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