Android OnTouchListener触屏事件接口

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Android OnTouchListener触屏事件接口

OnTouchListener接口是用来处理手机屏幕事件的监听接口,当为View的范围内触摸按下、抬起或滑动等动作时都会触发该事件。该接口中的监听方法签名如下。

Java代码:

public boolean onT ouch(View v, MotionEvent event)

参数v:参数v同样为事件源对象。

参数event:参数event为事件封装类的对象,其中封装了触发事件的详细信息,同样包括事件的类型、触发时间等信息。

节中介绍了一个在屏幕中拖动矩形移动的案例,本节将继续采用该案例的思路,通过监听接口的方式实现在屏幕上拖动按钮移动的案例。开发步骤如下。

创建一个名为Sample的Android项目。

准备字符串资源,打开strings.xml文件,用下列代码替换原有代码。

Java代码:

Hello World, Sample

Sample

位置

说明:与前面介绍的案例相同,对程序中用到的字符串资源进行定义。

开发布局文件。打开res/layout目录下的main.xml,用下列代码替换其原有代码。

Java代码:

android:id="@+id/AbsoluteLayout01"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

xmlns:android="/apk/res/android">

android:layout_y="123dip"

android:layout_x="106dip"

android:text="@string/location"

android:layout_height="wrap_content"

android:id="@+id/Button01"

android:layout_width="wrap_content"/>

说明:该布局文件非常简单,只是在一个绝对布局中添加一个按钮控件即可,需要注意的是应该为该按钮指定ID,以便在Java代码中可以得到该按钮的引用。

接下来开始开发主要的逻辑代码。编写Sample.java文件,其代码如下所示。

Java代码:

package wyf.ytl;

//声明所在包

import android.app.Activity;

//引入相关类

//该处省略了部分类的引入代码,读者可以自行查阅随书光盘中的源代码\

import android.widget.Button;

//引入相关类

public class Sample extends Activity {

final static int WRAP_CONTENT=-2;

//表示WRAP_CONTENT的常量

final static int X_MODIFY=4;

//在非全屏模式下X坐标的修正值

final static int Y_MODIFY=52;

//在非全屏模式下Y坐标的修正值

int xSpan;

//在触控笔点击按钮的情况下相对于按钮自己坐标系的

int ySpan;

//X,Y位置

public void onCreate(Bundle savedInstanceState) {

//重写的onCreate方法

super.onCreate(savedInstanceState); setContentView(yout.main);

//设置当前的用户界面

Button bok=(Button)this.findViewById(R.id.Button01); //得到按钮的引用

bok.setOnT ouchListener(

//添加监听

new OnTouchListener(){

//创建监听类

public boolean onT ouch(View view, MotionEventevent) { //重写的监听方法

switch(event.getAction()){

//监听事件

case MotionEvent.ACTION_DOWN:

//触控笔按下

xSpan=(int)event.getX();

//得到X坐标

ySpan=(int)event.getY();

//得到Y坐标

break;

case MotionEvent.ACTION_MOVE:

//触控笔移动

Button bok=(Button)findViewById(R.id.Button01);

//让按钮随着触控笔的移动一起移动

相关文档
最新文档