当前位置: 编程技术>移动开发
Android触屏测试实例代码
来源: 互联网 发布时间:2014-10-25
本文导语: 本文实例详细描述了Android触屏测试代码,可实现对触屏的点击、移动、离开等事件的处理,对于Android初学者有很好的借鉴价值。 具体功能代码如下: package com.test; import android.app.Activity; import android.os.Bundle; import android.util....
本文实例详细描述了Android触屏测试代码,可实现对触屏的点击、移动、离开等事件的处理,对于Android初学者有很好的借鉴价值。
具体功能代码如下:
package com.test; import android.app.Activity; import android.os.Bundle; import android.util.DisplayMetrics; import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.widget.AbsoluteLayout; import android.widget.Button; import android.widget.ImageView; import android.widget.Toast; public class TouchActivity extends Activity { /*声明ImageView变量*/ private ImageView mImageView01; /*声明相关变量作为存储图片宽高,位置使用*/ private int intWidth, intHeight, intDefaultX, intDefaultY; private float mX, mY; /*声明存储屏幕的分辨率变量 */ private int intScreenX, intScreenY; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); /* 取得屏幕对象 */ DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); /* 取得屏幕解析像素 */ intScreenX = dm.widthPixels; intScreenY = dm.heightPixels; /* 设置图片的宽高 */ intWidth = 100; intHeight = 100; /*通过findViewById构造器创建ImageView对象*/ mImageView01 =(ImageView) findViewById(R.id.myImageView1); /*将图片从Drawable赋值给ImageView来呈现*/ mImageView01.setImageResource(R.drawable.baby); /* 初始化按钮位置居中 */ RestoreButton(); /* 当点击ImageView,还原初始位置 */ mImageView01.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View v) { RestoreButton(); } }); } /*覆盖触控事件*/ public boolean onTouchEvent(MotionEvent event) { /*取得手指触控屏幕的位置*/ float x = event.getX(); float y = event.getY(); try { /*触控事件的处理*/ switch (event.getAction()) { /*点击屏幕*/ case MotionEvent.ACTION_DOWN: picMove(x, y); break; /*移动位置*/ case MotionEvent.ACTION_MOVE: picMove(x, y); break; /*离开屏幕*/ case MotionEvent.ACTION_UP: picMove(x, y); break; } }catch(Exception e) { e.printStackTrace(); } return true; } /*移动图片的方法*/ private void picMove(float x, float y) { /*默认微调图片与指针的相对位置*/ mX=x-(intWidth/2); mY=y-(intHeight/2); /*防图片超过屏幕的相关处理*/ /*防止屏幕向右超过屏幕*/ if((mX+intWidth)>intScreenX) { mX = intScreenX-intWidth; } /*防止屏幕向左超过屏幕*/ else if(mXintScreenY) { mY=intScreenY-intHeight; } /*防止屏幕向上超过屏幕*/ else if (mY