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

Android Button 原理

 2010-11-05 00:56:20 来源: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 {@link android.R.styleable#Button Button Attributes},

4. * {@link android.R.styleable#TextView TextView Attributes},

5. * {@link 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 [复制链接] [打 印]
赞助商链接