栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

Android触屏测试实例代码

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android触屏测试实例代码

本文实例详细描述了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 {
  
  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;
    
   mImageView01 =(ImageView) findViewById(R.id.myImageView1);
   
   mImageView01.setImageResource(R.drawable.baby);
   
   
   RestoreButton();
   
   
   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(mX<0)
   {
    mX = 0;
   }
   
   else if ((mY+intHeight)>intScreenY)
   {
    mY=intScreenY-intHeight;
   }
   
   else if (mY<0)
   {
    mY = 0;
   }
   
   Log.i("jay", Float.toString(mX)+","+Float.toString(mY));
   
   mImageView01.setLayoutParams
   (
    new AbsoluteLayout.LayoutParams
    (intWidth,intHeight,(int) mX,(int)mY)
   );
  }
  
  
  public void RestoreButton()
  {
   intDefaultX = ((intScreenX-intWidth)/2);
   intDefaultY = ((intScreenY-intHeight)/2);
   
   mMakeTextToast
   (
    "("+
    Integer.toString(intDefaultX)+
    ","+
    Integer.toString(intDefaultY)+")",true
   );
   
   
   mImageView01.setLayoutParams
   (
    new AbsoluteLayout.LayoutParams
    (intWidth,intHeight,intDefaultX,intDefaultY)
   );
  }
  
  
  public void mMakeTextToast(String str, boolean isLong)
  {
   if(isLong==true)
   {
    Toast.makeText(TouchActivity.this, str, Toast.LENGTH_LONG).show();
   }
   else
   {
    Toast.makeText(TouchActivity.this, str, Toast.LENGTH_SHORT).show();
   }
  }
}

读者还可以在该实例的基础上完善各种事件的响应处理函数,使其功能更加丰富。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/164510.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号