- 浏览: 227029 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (109)
- IOS (15)
- 设计模式 (7)
- XML (1)
- Android (31)
- 面试经 (1)
- J2EE (3)
- android md5 加密 (2)
- android imagebutton文字实现 (1)
- 反射机制 (2)
- 基础知识 (1)
- linux (3)
- java (4)
- java基础 (2)
- 文章 (1)
- myeclipse tomcat (1)
- Hadoop (1)
- ubuntu (2)
- redmine (1)
- python (4)
- jmeter (10)
- xamarin (1)
- selenium (9)
- nexus (1)
- appium (3)
- BDD (1)
- apache2 (1)
- zabbix (2)
- python,webdriver (1)
- ajax (1)
- jmeter,正则表达式,关联 (2)
- 性能测试工具 (1)
- Django (0)
- Intelij (1)
- RAP (0)
- 性能测试 (0)
最新评论
监听器:
监听器 方法 内容
OnClickListener onClick 监听点击事件(点击或按下导航键)
OnClickListener onLongClick 监听长按事件(保持点击或按住导航键)
OnClickListener onKey 监听物理按件(点击或松开物理导航键,上下左右键)
OnTouchListener onTouch 监听触摸事件(点击滑动弹起等)
设置监听器:
方法一:定义一个OnClickListener类的实例,并使用setOnClickListener等绑定监听器。
方法二:用Activity来实现OnClickListener接口。
其中第一种通常用匿名内部类或者内部类来实现。而第二种更加简洁,更加高效,特别是在很多空间需要添加监听器的情况下。
界面:
Xml代码
<Button
android:id="@+id/button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="MyButton"
/>
<TextView
android:id="@+id/textview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<Button
android:id="@+id/button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="MyButton"
/>
<TextView
android:id="@+id/textview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/> 在onLongClick中,返回值必须为true;消费概念:当时间完成对一个view的操作后,只需要返回true,表示该控件已经被消费了,后面的时间就不会被调用了。
ACTION_DOWN 按下
ACTION_MOVE 滑动
ACTION_UP 弹起
ACTION_DOWN为起始事件,如果调用了其他两个方法,这个是肯定先被调用。
Java代码
package example.first;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
private Button bt;
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv=(TextView)findViewById(R.id.textview);
bt=(Button)findViewById(R.id.button);
//匿名内部类作为监听器
bt.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
tv.setText("你点击了button");
}
});
bt.setOnLongClickListener(new OnLongClickListener(){
@Override
public boolean onLongClick(View arg0) {
// TODO Auto-generated method stub
tv.setText("你长按了button");
return true; //注意这里必须return true
}
});
}
@Override
public boolean onKeyDown(int keyCode,KeyEvent event){
switch(keyCode){
case KeyEvent.KEYCODE_DPAD_UP:tv.setText("你按下了上方向键");//监听按下上方向键
break;
case KeyEvent.KEYCODE_DPAD_DOWN:tv.setText("你按下了下方向键");
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onKeyUp(int keyCode,KeyEvent event){
switch(keyCode){
case KeyEvent.KEYCODE_DPAD_UP:tv.setText("你松开了了上方向键");
break;
case KeyEvent.KEYCODE_DPAD_DOWN:tv.setText("你松开了下方向键");
}
return super.onKeyUp(keyCode, event);
}
public boolean onTouchEvent(MotionEvent event){
int x=(int)event.getX();
int y=(int)event.getY();
switch(event.getAction()){
case MotionEvent.ACTION_MOVE:tv.setText("你滑动了屏幕");
break;
case MotionEvent.ACTION_DOWN:tv.setText("你点击的屏幕坐标为"
+Integer.toString(x)+","+Integer.toString(y));//取得点击的坐标
break;
case MotionEvent.ACTION_UP:tv.setText("你离开屏幕的坐标为"
+Integer.toString(x)+","+Integer.toString(y));//取得松开时的坐标
break;
}
return true; //最好是return true
}
}
package example.first;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
private Button bt;
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv=(TextView)findViewById(R.id.textview);
bt=(Button)findViewById(R.id.button);
//匿名内部类作为监听器
bt.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
tv.setText("你点击了button");
}
});
bt.setOnLongClickListener(new OnLongClickListener(){
@Override
public boolean onLongClick(View arg0) {
// TODO Auto-generated method stub
tv.setText("你长按了button");
return true; //注意这里必须return true
}
});
}
@Override
public boolean onKeyDown(int keyCode,KeyEvent event){
switch(keyCode){
case KeyEvent.KEYCODE_DPAD_UP:tv.setText("你按下了上方向键");//监听按下上方向键
break;
case KeyEvent.KEYCODE_DPAD_DOWN:tv.setText("你按下了下方向键");
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onKeyUp(int keyCode,KeyEvent event){
switch(keyCode){
case KeyEvent.KEYCODE_DPAD_UP:tv.setText("你松开了了上方向键");
break;
case KeyEvent.KEYCODE_DPAD_DOWN:tv.setText("你松开了下方向键");
}
return super.onKeyUp(keyCode, event);
}
public boolean onTouchEvent(MotionEvent event){
int x=(int)event.getX();
int y=(int)event.getY();
switch(event.getAction()){
case MotionEvent.ACTION_MOVE:tv.setText("你滑动了屏幕");
break;
case MotionEvent.ACTION_DOWN:tv.setText("你点击的屏幕坐标为"
+Integer.toString(x)+","+Integer.toString(y));//取得点击的坐标
break;
case MotionEvent.ACTION_UP:tv.setText("你离开屏幕的坐标为"
+Integer.toString(x)+","+Integer.toString(y));//取得松开时的坐标
break;
}
return true; //最好是return true
}
}
运行效果:
Button效果;状态列表(statelist实现)
根标签setector
一个item定义一种状态(按下 选中 无焦点状态)
item下有shape标签,用来定义控件的显示效果,含有gradient,stoke,corners等子标签分别表示不同的效果。
在stoke圆角标签中,分别指定每个角的弧度时,bottomRightRadius代表左下角,bottomLeftRadius代表右下角。
监听器 方法 内容
OnClickListener onClick 监听点击事件(点击或按下导航键)
OnClickListener onLongClick 监听长按事件(保持点击或按住导航键)
OnClickListener onKey 监听物理按件(点击或松开物理导航键,上下左右键)
OnTouchListener onTouch 监听触摸事件(点击滑动弹起等)
设置监听器:
方法一:定义一个OnClickListener类的实例,并使用setOnClickListener等绑定监听器。
方法二:用Activity来实现OnClickListener接口。
其中第一种通常用匿名内部类或者内部类来实现。而第二种更加简洁,更加高效,特别是在很多空间需要添加监听器的情况下。
界面:
Xml代码
<Button
android:id="@+id/button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="MyButton"
/>
<TextView
android:id="@+id/textview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<Button
android:id="@+id/button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="MyButton"
/>
<TextView
android:id="@+id/textview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/> 在onLongClick中,返回值必须为true;消费概念:当时间完成对一个view的操作后,只需要返回true,表示该控件已经被消费了,后面的时间就不会被调用了。
ACTION_DOWN 按下
ACTION_MOVE 滑动
ACTION_UP 弹起
ACTION_DOWN为起始事件,如果调用了其他两个方法,这个是肯定先被调用。
Java代码
package example.first;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
private Button bt;
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv=(TextView)findViewById(R.id.textview);
bt=(Button)findViewById(R.id.button);
//匿名内部类作为监听器
bt.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
tv.setText("你点击了button");
}
});
bt.setOnLongClickListener(new OnLongClickListener(){
@Override
public boolean onLongClick(View arg0) {
// TODO Auto-generated method stub
tv.setText("你长按了button");
return true; //注意这里必须return true
}
});
}
@Override
public boolean onKeyDown(int keyCode,KeyEvent event){
switch(keyCode){
case KeyEvent.KEYCODE_DPAD_UP:tv.setText("你按下了上方向键");//监听按下上方向键
break;
case KeyEvent.KEYCODE_DPAD_DOWN:tv.setText("你按下了下方向键");
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onKeyUp(int keyCode,KeyEvent event){
switch(keyCode){
case KeyEvent.KEYCODE_DPAD_UP:tv.setText("你松开了了上方向键");
break;
case KeyEvent.KEYCODE_DPAD_DOWN:tv.setText("你松开了下方向键");
}
return super.onKeyUp(keyCode, event);
}
public boolean onTouchEvent(MotionEvent event){
int x=(int)event.getX();
int y=(int)event.getY();
switch(event.getAction()){
case MotionEvent.ACTION_MOVE:tv.setText("你滑动了屏幕");
break;
case MotionEvent.ACTION_DOWN:tv.setText("你点击的屏幕坐标为"
+Integer.toString(x)+","+Integer.toString(y));//取得点击的坐标
break;
case MotionEvent.ACTION_UP:tv.setText("你离开屏幕的坐标为"
+Integer.toString(x)+","+Integer.toString(y));//取得松开时的坐标
break;
}
return true; //最好是return true
}
}
package example.first;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
private Button bt;
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv=(TextView)findViewById(R.id.textview);
bt=(Button)findViewById(R.id.button);
//匿名内部类作为监听器
bt.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
tv.setText("你点击了button");
}
});
bt.setOnLongClickListener(new OnLongClickListener(){
@Override
public boolean onLongClick(View arg0) {
// TODO Auto-generated method stub
tv.setText("你长按了button");
return true; //注意这里必须return true
}
});
}
@Override
public boolean onKeyDown(int keyCode,KeyEvent event){
switch(keyCode){
case KeyEvent.KEYCODE_DPAD_UP:tv.setText("你按下了上方向键");//监听按下上方向键
break;
case KeyEvent.KEYCODE_DPAD_DOWN:tv.setText("你按下了下方向键");
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onKeyUp(int keyCode,KeyEvent event){
switch(keyCode){
case KeyEvent.KEYCODE_DPAD_UP:tv.setText("你松开了了上方向键");
break;
case KeyEvent.KEYCODE_DPAD_DOWN:tv.setText("你松开了下方向键");
}
return super.onKeyUp(keyCode, event);
}
public boolean onTouchEvent(MotionEvent event){
int x=(int)event.getX();
int y=(int)event.getY();
switch(event.getAction()){
case MotionEvent.ACTION_MOVE:tv.setText("你滑动了屏幕");
break;
case MotionEvent.ACTION_DOWN:tv.setText("你点击的屏幕坐标为"
+Integer.toString(x)+","+Integer.toString(y));//取得点击的坐标
break;
case MotionEvent.ACTION_UP:tv.setText("你离开屏幕的坐标为"
+Integer.toString(x)+","+Integer.toString(y));//取得松开时的坐标
break;
}
return true; //最好是return true
}
}
运行效果:
Button效果;状态列表(statelist实现)
根标签setector
一个item定义一种状态(按下 选中 无焦点状态)
item下有shape标签,用来定义控件的显示效果,含有gradient,stoke,corners等子标签分别表示不同的效果。
在stoke圆角标签中,分别指定每个角的弧度时,bottomRightRadius代表左下角,bottomLeftRadius代表右下角。
发表评论
-
Starting emulator for AVD 'android' PANIC: Could not open: android
2013-05-21 13:29 1929我的电脑-->属性-->高级-->环境变量。 ... -
eclipse4.2版本下面安装ADT,安装已经完成了,但没有ADT的那个图标显示
2013-05-21 13:26 943如果安装过程没错,直接在Eclipse ->window ... -
Android 打包签名 从生成keystore到完成签名 -
2012-10-30 00:49 959首先,我们需要一个keystore,当然已经有了的话就不用这一 ... -
解决更新并使用最新ADT20不能创建android项目问题
2012-10-18 22:20 1056不知道谷歌又怎么了,每次更新ADT插件就会出现各种各样的问题, ... -
ORACLE分页查询SQL语法
2012-10-18 22:20 1212oracle数据库 --1:无ORDER BY ... -
Activity生命周期
2012-10-18 22:20 1141博客分类: Android 新的activit ... -
布局
2012-10-18 22:21 1097padding:描述控件里面的内容与控件的关机,内边距;有四个 ... -
常用控件:TextView EditView
2012-10-13 13:32 1187TextView 布局: Xml代 ... -
菜单
2012-10-13 13:31 1118menu键触发 三种形式:普通的option menu;上下 ... -
HttpClient
2012-10-13 13:31 1135在Android开发中我们经常会用到网络连接功能与服务器进行数 ... -
Android 的一些提示框
2012-10-08 00:57 7911.在测试时,如何实现一个提示 可以使用 Toast.ma ... -
Intent的几种用法
2012-10-08 00:57 935下面列出几种Intent的用法 1. 启动一个新的Activ ... -
Android改变窗口标题栏的布局
2012-10-10 23:26 929一、 重点 一般应用的Title都是建立应用时在Androi ... -
android中如何自定义attributes
2012-10-10 23:26 991写程序中可能需要用到一些自定义的view控件,这样就需要增加一 ... -
android manifest.xml中元素含义
2012-10-08 00:56 845android:allowTaskReparenting 是 ... -
十二个android编程技巧
2012-10-10 23:26 10081.让一个图片透明: Java代码 1. Bitm ... -
Android Phone类分析
2012-10-10 23:26 1232AccelerometerListener:感应 ... -
android控件设置居中方式
2012-10-07 00:16 8467垂直居中 android:layout_centerVert ... -
android TextView属性大全
2012-10-10 23:28 985android:autoLink设置是否当 ... -
Android之使用HTTP的get,post,HttpClient三种方式向服务器端提交文本数据
2012-10-11 00:16 915客户端代码示例: /** * HTTP请求 * ...
相关推荐
在Visual Basic(VB)编程环境中,按钮控件是不可或缺的一部分,它们用于接收用户输入并触发特定的事件或功能。"VB按钮控件大全"显然是一份包含多种样式和功能的VB按钮控件集合,旨在为开发者提供丰富的选择,以增强...
在C#编程中,创建一个圆形按钮控件可以极大地提升应用程序的界面美观度和用户体验。以下将详细讲解如何实现这个功能,以及相关的知识点。 首先,我们需要理解C#中的控件和自定义控件的概念。控件是用户界面的基本...
【JCButton按钮控件正式版】是一款专为开发者设计的高效、可定制化的GUI界面元素,主要用于提升应用程序的用户交互体验。此控件在Windows应用开发中尤其常见,能够提供丰富的样式、效果以及自定义事件处理,使得按钮...
在VB6(Visual Basic 6)编程环境中,开发者经常需要用到各种各样的控件来构建用户界面,其中图片按钮控件是一种增强用户交互体验的重要元素。本文将深入探讨VB6中的图片按钮控件及其使用方法,结合提供的"Ibutton...
在VB(Visual Basic)编程环境中,开发者经常遇到标准按钮控件功能相对有限的情况,例如,按钮的样式单一、交互效果不丰富等。标题提到的"按钮控件(解决vb按钮功能不强的问题,免费!!)"正是为了解决这个问题而...
C# 自定义按钮控件C# 自定义按钮控件C# 自定义按钮控件C# 自定义按钮控件C# 自定义按钮控件C# 自定义按钮控件C# 自定义按钮控件C# 自定义按钮控件C# 自定义按钮控件C# 自定义按钮控件C# 自定义按钮控件C# 自定义按钮...
在IT领域,尤其是在软件开发中,用户界面(UI)的设计至关重要,而按钮控件作为用户交互的核心元素,其设计和实现的优劣直接影响到用户的使用体验。这个名为"国外优秀的按钮控件源码集合"的资源包,正是一个专门收集和...
在IT行业中,按钮控件是用户界面(UI)设计中不可或缺的一部分,它们允许用户执行特定操作或触发事件。"完整版扩展按钮控件"通常指的是一个包含多种样式、功能和定制选项的按钮组件库,旨在为开发者提供更丰富的选择...
在MFC中,按钮控件是一个常见的元素,通常用于用户交互。本篇文章将详细介绍如何利用MFC对按钮控件进行增强,特别是如何设置按钮的透明度、背景色、文本以及显示状态。 首先,`BtnST.cpp`和`BtnST.h`这两个文件很...
首先,"vb皮肤按钮控件可用"指的是在VB项目中引入了具有独特视觉效果的按钮控件,这种控件通常被称为皮肤按钮。它不同于传统的默认按钮,皮肤按钮提供了更多的自定义选项,如颜色、形状、边框样式等,使用户能够根据...
在LabVIEW中,自定义按钮控件是用户界面设计中的一个重要元素,它可以为你的应用程序增添独特的外观和功能。标题提到的“labview自定义按钮控件”是一个自定义UI组件,提供了比标准LabVIEW按钮更丰富的视觉效果或...
在MFC中,我们有时需要创建更具有视觉吸引力的控件,比如位图按钮,这正是“MFC的位图按钮控件”所涉及的核心概念。位图按钮控件允许我们将自定义的图像应用到按钮上,不仅包含常规状态下的图像,还可以包括按钮被...
VB酷按钮控件是一种在Visual Basic (VB)编程环境中使用的用户界面组件,它为开发者提供了类似于Windows XP操作系统中流行的浮动式、美观的按钮效果。这种控件通常通过ActiveX技术实现,可以为应用程序增添视觉吸引力...
【JCButton VB按钮控件及示例包(源码)】是一个专为VB(Visual Basic)开发者设计的自定义按钮控件,它扩展了标准的VB按钮控件功能,提供了更多的特性和定制选项,帮助开发者在Windows应用程序中创建更加美观且功能...
在本案例中,我们关注的是“自定义水晶按钮控件”。这个控件可能是在C#编程环境下,通过继承.NET Framework的基类并扩展其功能来实现的。水晶按钮控件可能是对标准Windows Forms Button控件的美化或者功能增强,它...
"封装完毕的彩色按钮控件类"是一个专为创建和管理彩色按钮设计的自定义控件,它允许开发者轻松地在应用程序中添加色彩丰富的按钮,以提高用户界面的吸引力和可用性。 首先,我们来看一下"BtnST.h"这个头文件。这个...
本文将深入探讨“Delphi透明按钮控件”的实现方式,以及如何利用提供的"FlatSpeedbutton"资源来设计这样的控件。 Delphi透明按钮控件是一种自定义的按钮组件,它允许开发人员在界面上创建具有透明背景的按钮,从而...
总结来说,"VB经典按钮控件OCX格式"是VB开发中一种可能具有特殊功能或样式的按钮控件,它通过OCX技术提供,可以增强应用的UI和用户体验。理解和利用这类控件能有效提升VB应用的开发效率和质量。
按钮控件是用户交互的基本元素,用于执行特定操作。CButton类支持单选按钮、复选框和普通按钮。可以通过SetCheck改变单选或复选按钮的状态,或通过SetWindowText更改按钮上的文本。 5. **旋转控件** ...
### 自定义图片按钮控件——C#在WINCE下的应用及实现 #### 一、引言 在现代软件开发中,用户体验是至关重要的一个方面。为了提升用户体验,开发者经常需要自定义用户界面元素,比如按钮。本文将详细介绍如何在...