国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android觸屏測試實例代碼

2020-04-11 11:47:11
字體:
來源:轉載
供稿:網友

本文實例詳細描述了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();   }  }}

讀者還可以在該實例的基礎上完善各種事件的響應處理函數,使其功能更加豐富。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 福鼎市| 大竹县| 延寿县| 斗六市| 勃利县| 兴城市| 肥乡县| 万源市| 托里县| 乌拉特后旗| 大余县| 临桂县| 揭西县| 黔南| 西吉县| 秦安县| 新和县| 城步| 莱芜市| 高台县| 扎鲁特旗| 土默特左旗| 尖扎县| 松江区| 石屏县| 长白| 瑞丽市| 巨野县| 泗水县| 达拉特旗| 双江| 永州市| 澄迈县| 巴林右旗| 潞西市| 新绛县| 漠河县| 乳山市| 鄢陵县| 乌拉特前旗| 明溪县|