输入控制——Buttons——翻译自developer.android.com
来源:互联网 发布:广西广电网络收费套餐 编辑:程序博客网 时间:2024/06/05 21:55
按钮包含了用来指示按下去会发生什么的图标和文字。
根据你时候需要显示文字,图标或者二者都要,你可以用下面三种方式来创建你写的布局。
-显示文字,使用button类:
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button_text" ... />-显示图标,使用ImageButton类:
<ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/button_icon" ... />-显示文字和图标,使用Button类和android:drawableLeft属性:
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button_text" android:drawableLeft="@drawable/button_icon" ... />
响应点击事件
<?xml version="1.0" encoding="utf-8"?><Button xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/button_send" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button_send" android:onClick="sendMessage" />
/** Called when the user touches the button当用户点击按钮的时候调用 */public void sendMessage(View view) { // Do something in response to button click 响应点击的事物}你在android:onClick中声明的属性必须要有一个准确的标识,如同上面显示的那样。特别是这个方法一定要是:
使用一个OnClickListener
Button button = (Button) findViewById(R.id.button_send);button.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // Do something in response to button click }});
定制你的button的风格
无边界按钮borderless button
<Button android:id="@+id/button_send" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button_send" android:onClick="sendMessage" style="?android:attr/borderlessButtonStyle" />
定制背景
如果你想真正地重新定义你的button的外观,你可以指定一个定制的background。不再仅仅是提供一个位图或者颜色,你的背景应该是一个state list 资源,根据按钮的当前不同状态来改变按钮的外观。
你可以在XML文件中定义state list来指定按钮的不同状态下要显示的资源。
创建button背景的state list:
1. 为按钮的三个状态创建三个不同的位图,分别是 default, pressed , focused三种。
为了保证你的位图资源可以适应不同大小的button,把位图资源应该是 nine-patch位图。
2.把位图放进你项目的res/drawable/文件夹下面。保证每一个位图的命名都恰当地反应了它们代表的状态,比如说button_default.9.png,button_pressed.9.png,以及button_focused.9.png.
3.在/res/drawable文件夹下面创建新的xml文件(命名为比如说 button_custom.xml)。写入如下的xml:
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/button_pressed" android:state_pressed="true" /> <item android:drawable="@drawable/button_focused" android:state_focused="true" /> <item android:drawable="@drawable/button_default" /></selector>
这定义了一个单独的drawable资源,它会根据当前的按钮的状态来改变它的图片。
- 第一个<item>定义了当button按下时候显示的图片。
- 第二个<item>定义了当的这个按钮获得焦点的时候显示的图片(当使用轨迹球或者方向导航键的时候按钮被高亮的时候)
-第三个<item>定义了这个button默认情况的显示,(既没有按下,也没有获得焦点)
提示:<item>标签的顺序很重要。当引用drawable资源的时候,<item>元素按照顺序被遍历来决定哪一个适合当前的button状态。因为默认的位图是最后一个,所以只有当判断 android:state_pressed 和 android;state_focused的值都是false的时候才会启用。
这个xml对象提供了一个单独的drawable资源,并且被一个button的background引用。图片的显示会基于三种不同的状态来现实。
4.下面是对于这种drawable资源作为button背景的简单的应用:
<Button android:id="@+id/button_send" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button_send" android:onClick="sendMessage" android:background="@drawable/button_custom" />
更多的关于xml语法的信息,包括怎样定义一个禁用的或者悬停的以及其他的button状态,请参考State List Drawable文档。
- 输入控制——Buttons——翻译自developer.android.com
- InputEvent 输入事件——翻译自developer.android.com API Guides
- Layout布局——翻译自developer.android.com
- Android Interface Definition Language (AIDL)——翻译自developer.android.com
- Android用户交互概述(UI)——翻译自developer.android.com
- 创建一个BoundService——翻译总结自developer.android.com
- Location and Maps(位置和地图)——翻译自developer.android.com
- Near Field Communication(nfc近场通信)——翻译自developer.android.com
- NFC Basics(基本NFC)——翻译自developer.android.com
- Advanced NFC(高级NFC)——翻译自developer.android.com
- 进程和线程(Processes and Threads)——翻译自developer.android.com
- App组件之服务Service——翻译自developer.android.com
- 内容提供者基础 Content Provider Basics——翻译自developer.android.com
- 创建一个内容提供者Creating a Content Provider——翻译总结自developer.android.com
- Grid View 网格视图——翻译自developer.android.com api guides
- FrameLayout——帧布局 翻译自developer.android.com sdk
- 检测一般的手势Detecting Common Gestures——翻译自developer.android.com Training
- 两个view间淡入淡出 Crossfading Two Views——翻译自developer.android.com Training
- Android Scroll分析(一)
- 136. Single Number
- iOS开发应用上架必读最新苹果审核规则(史上最全版)
- CodeIgniter学习笔记 Item9--CI中的类库
- 走完学习的全程
- 输入控制——Buttons——翻译自developer.android.com
- Python类成员方法与静态方法
- python函数学习笔记
- 如何获取iOS App素材
- mathematica散点图
- 关于BIEE的权限设计
- python的datetime库笔记
- 约瑟夫算法
- ESP8266-SDK中I2C的使用