`
ze_nana
  • 浏览: 52285 次
社区版块
存档分类
最新评论

(八)按钮控件

 
阅读更多

监听器:

 

监听器 方法 内容
OnClickListener onClick 监听点击事件(点击或按下导航键)
OnClickListener onLongClick 监听长按事件(保持点击或按住导航键)
OnClickListener onKey 监听物理按件(点击或松开物理导航键,上下左右键)
OnTouchListener onTouch 监听触摸事件(点击滑动弹起等)

 

设置监听器:

方法一:定义一个OnClickListener类的实例,并使用setOnClickListener等绑定监听器。

方法二:用Activity来实现OnClickListener接口。

其中第一种通常用匿名内部类或者内部类来实现。而第二种更加简洁,更加高效,特别是在很多空间需要添加监听器的情况下。

 

界面:

 <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为起始事件,如果调用了其他两个方法,这个是肯定先被调用。

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代表右下角。

 

 

 

  • 大小: 4.8 KB
  • 大小: 6.7 KB
  • 大小: 3.2 KB
  • 大小: 4.6 KB
  • 大小: 5.2 KB
分享到:
评论

相关推荐

    VB按钮控件大全,多个漂亮的VB按钮

    在Visual Basic(VB)编程环境中,按钮控件是不可或缺的一部分,它们用于接收用户输入并触发特定的事件或功能。"VB按钮控件大全"显然是一份包含多种样式和功能的VB按钮控件集合,旨在为开发者提供丰富的选择,以增强...

    C# 自定义按钮控件

    C# 自定义按钮控件C# 自定义按钮控件C# 自定义按钮控件C# 自定义按钮控件C# 自定义按钮控件C# 自定义按钮控件C# 自定义按钮控件C# 自定义按钮控件C# 自定义按钮控件C# 自定义按钮控件C# 自定义按钮控件C# 自定义按钮...

    JCButton按钮控件正式版 JCButton按钮控件正式版

    【JCButton按钮控件正式版】是一款专为开发者设计的高效、可定制化的GUI界面元素,主要用于提升应用程序的用户交互体验。此控件在Windows应用开发中尤其常见,能够提供丰富的样式、效果以及自定义事件处理,使得按钮...

    c#实现圆形按钮控件

    在C#编程中,创建一个圆形按钮控件可以极大地提升应用程序的界面美观度和用户体验。以下将详细讲解如何实现这个功能,以及相关的知识点。 首先,我们需要理解C#中的控件和自定义控件的概念。控件是用户界面的基本...

    vb皮肤按钮控件可用

    首先,"vb皮肤按钮控件可用"指的是在VB项目中引入了具有独特视觉效果的按钮控件,这种控件通常被称为皮肤按钮。它不同于传统的默认按钮,皮肤按钮提供了更多的自定义选项,如颜色、形状、边框样式等,使用户能够根据...

    按钮控件(解决vb按钮功能不强的问题,免费!!)

    在VB(Visual Basic)编程环境中,开发者经常遇到标准按钮控件功能相对有限的情况,例如,按钮的样式单一、交互效果不丰富等。标题提到的"按钮控件(解决vb按钮功能不强的问题,免费!!)"正是为了解决这个问题而...

    labview自定义按钮控件

    在LabVIEW中,自定义按钮控件是用户界面设计中的一个重要元素,它可以为你的应用程序增添独特的外观和功能。标题提到的“labview自定义按钮控件”是一个自定义UI组件,提供了比标准LabVIEW按钮更丰富的视觉效果或...

    8.如何在程序窗口中创建按钮控件?(Visual C++编程 源代码)

    8.如何在程序窗口中创建按钮控件?(Visual C++编程 源代码)8.如何在程序窗口中创建按钮控件?(Visual C++编程 源代码)8.如何在程序窗口中创建按钮控件?(Visual C++编程 源代码)8.如何在程序窗口中创建按钮...

    VB按钮美化控件

    在VB(Visual Basic)编程环境中,开发者经常需要创建和使用各种控件,其中包括按钮控件。按钮是用户界面中常见的元素,用于触发特定的操作或事件。然而,VB默认的按钮样式可能较为简单,无法满足一些高级用户界面...

    vb酷按钮控件

    VB酷按钮控件是一种在Visual Basic (VB)编程环境中使用的用户界面组件,它为开发者提供了类似于Windows XP操作系统中流行的浮动式、美观的按钮效果。这种控件通常通过ActiveX技术实现,可以为应用程序增添视觉吸引力...

    VB漂亮的按钮控件 VB漂亮的按钮控件

    VB漂亮的按钮控件 VB漂亮的按钮控件 VB漂亮的按钮控件 VB漂亮的按钮控件

    VB6各种图片按钮控件

    在VB6(Visual Basic 6)编程环境中,开发者经常需要用到各种各样的控件来构建用户界面,其中图片按钮控件是一种增强用户交互体验的重要元素。本文将深入探讨VB6中的图片按钮控件及其使用方法,结合提供的"Ibutton...

    国外优秀的按钮控件源码集合

    在IT领域,尤其是在软件开发中,用户界面(UI)的设计至关重要,而按钮控件作为用户交互的核心元素,其设计和实现的优劣直接影响到用户的使用体验。这个名为"国外优秀的按钮控件源码集合"的资源包,正是一个专门收集和...

    完整版扩展按钮控件.rar

    在IT行业中,按钮控件是用户界面(UI)设计中不可或缺的一部分,它们允许用户执行特定操作或触发事件。"完整版扩展按钮控件"通常指的是一个包含多种样式、功能和定制选项的按钮组件库,旨在为开发者提供更丰富的选择...

    自定义水晶按钮控件

    在本案例中,我们关注的是“自定义水晶按钮控件”。这个控件可能是在C#编程环境下,通过继承.NET Framework的基类并扩展其功能来实现的。水晶按钮控件可能是对标准Windows Forms Button控件的美化或者功能增强,它...

    基于Qt和C++实现的高亮发光按钮控件+源码

    基于Qt和C++实现的高亮发光按钮控件+源码 基于Qt和C++实现的高亮发光按钮控件+源码 基于Qt和C++实现的高亮发光按钮控件+源码 基于Qt和C++实现的高亮发光按钮控件+源码 基于Qt和C++实现的高亮发光按钮控件+源码 ...

    Delphi透明按钮控件

    本文将深入探讨“Delphi透明按钮控件”的实现方式,以及如何利用提供的"FlatSpeedbutton"资源来设计这样的控件。 Delphi透明按钮控件是一种自定义的按钮组件,它允许开发人员在界面上创建具有透明背景的按钮,从而...

    labview 按钮控件

    在LabVIEW中,按钮控件是用户界面(UI)设计中的重要元素,用于接收用户的输入和触发特定的程序行为。 "labview 按钮控件"这个主题主要涉及LabVIEW中不同类型的按钮以及它们的使用方法。按钮控件分为多种类型,例如...

    MFC的位图按钮控件

    在MFC中,我们有时需要创建更具有视觉吸引力的控件,比如位图按钮,这正是“MFC的位图按钮控件”所涉及的核心概念。位图按钮控件允许我们将自定义的图像应用到按钮上,不仅包含常规状态下的图像,还可以包括按钮被...

Global site tag (gtag.js) - Google Analytics