当前位置: 移动技术网 > IT编程>移动开发>Android > Android触屏测试实例代码

Android触屏测试实例代码

2019年07月24日  | 移动技术网IT编程  | 我要评论

富连网旗舰店,4948地铁笨蛋,卡布西游混世魔童

本文实例详细描述了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(mx<0)
   {
    mx = 0;
   }
   /*防止屏幕向下超过屏幕*/
   else if ((my+intheight)>intscreeny)
   {
    my=intscreeny-intheight;
   }
   /*防止屏幕向上超过屏幕*/
   else if (my<0)
   {
    my = 0;
   }
   /*通过log 来查看图片位置*/
   log.i("jay", float.tostring(mx)+","+float.tostring(my));
   /* 以setlayoutparams方法,重新安排layout上的位置 */
   mimageview01.setlayoutparams
   (
    new absolutelayout.layoutparams
    (intwidth,intheight,(int) mx,(int)my)
   );
  }
  
  /* 还原imageview位置的事件处理 */
  public void restorebutton()
  {
   intdefaultx = ((intscreenx-intwidth)/2);
   intdefaulty = ((intscreeny-intheight)/2);
   /*toast还原位置坐标*/
   mmaketexttoast
   (
    "("+
    integer.tostring(intdefaultx)+
    ","+
    integer.tostring(intdefaulty)+")",true
   );
   
   /* 以setlayoutparams方法,重新安排layout上的位置 */
   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();
   }
  }
}

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

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网