Android觸屏測試實(shí)例代碼
本文實(shí)例詳細(xì)描述了Android觸屏測試代碼,可實(shí)現(xiàn)對觸屏的點(diǎn)擊、移動(dòng)、離開等事件的處理,對于Android初學(xué)者有很好的借鑒價(jià)值。
具體功能代碼如下:
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; /*聲明相關(guān)變量作為存儲(chǔ)圖片寬高,位置使用*/ private int intWidth, intHeight, intDefaultX, intDefaultY; private float mX, mY; /*聲明存儲(chǔ)屏幕的分辨率變量 */ 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; /* 設(shè)置圖片的寬高 */ intWidth = 100; intHeight = 100; /*通過findViewById構(gòu)造器創(chuàng)建ImageView對象*/ mImageView01 =(ImageView) findViewById(R.id.myImageView1); /*將圖片從Drawable賦值給ImageView來呈現(xiàn)*/ mImageView01.setImageResource(R.drawable.baby); /* 初始化按鈕位置居中 */ RestoreButton(); /* 當(dāng)點(diǎn)擊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()) { /*點(diǎn)擊屏幕*/ case MotionEvent.ACTION_DOWN: picMove(x, y); break; /*移動(dòng)位置*/ case MotionEvent.ACTION_MOVE: picMove(x, y); break; /*離開屏幕*/ case MotionEvent.ACTION_UP: picMove(x, y); break; } }catch(Exception e) { e.printStackTrace(); } return true; } /*移動(dòng)圖片的方法*/ private void picMove(float x, float y) { /*默認(rèn)微調(diào)圖片與指針的相對位置*/ mX=x-(intWidth/2); mY=y-(intHeight/2); /*防圖片超過屏幕的相關(guān)處理*/ /*防止屏幕向右超過屏幕*/ 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還原位置坐標(biāo)*/ mMakeTextToast ( "("+ Integer.toString(intDefaultX)+ ","+ Integer.toString(intDefaultY)+")",true ); /* 以setLayoutParams方法,重新安排Layout上的位置 */ mImageView01.setLayoutParams ( new AbsoluteLayout.LayoutParams (intWidth,intHeight,intDefaultX,intDefaultY) ); } /*自定義一發(fā)出信息的方法*/ 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(); } } }
讀者還可以在該實(shí)例的基礎(chǔ)上完善各種事件的響應(yīng)處理函數(shù),使其功能更加豐富。
相關(guān)文章
Android 調(diào)用系統(tǒng)相機(jī)拍攝獲取照片的兩種方法實(shí)現(xiàn)實(shí)例
這篇文章主要介紹了Android 調(diào)用系統(tǒng)相機(jī)拍攝獲取照片的兩種方法實(shí)現(xiàn)實(shí)例的相關(guān)資料,一種是通過Bundle來獲取壓縮過的照片,一種是通過SD卡獲取的原圖,需要的朋友可以參考下2016-11-11Android中使用TextView實(shí)現(xiàn)高仿京東淘寶各種倒計(jì)時(shí)效果
今天給大家?guī)淼氖莾H僅使用一個(gè)TextView實(shí)現(xiàn)一個(gè)高仿京東、淘寶、唯品會(huì)等各種電商APP的活動(dòng)倒計(jì)時(shí)。今天小編把實(shí)現(xiàn)代碼分享到腳本之家平臺(tái),對android textclock 倒計(jì)時(shí)效果感興趣的朋友參考下吧2016-10-10實(shí)例講解Android應(yīng)用中自定義組合控件的方法
這篇文章主要介紹了實(shí)例講解Android應(yīng)用中自定義組合控件的方法,通過例子講解了view組合控件及自定義屬性的用法,需要的朋友可以參考下2016-04-04Android編程中Perferences的用法實(shí)例分析
這篇文章主要介紹了Android編程中Perferences的用法,以實(shí)例形式較為詳細(xì)的分析了配置文件preferences.xml的功能、定義及使用方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11Android系統(tǒng)檢測程序內(nèi)存占用各種方法
這篇文章主要介紹了Android系統(tǒng)檢測程序內(nèi)存占用各種方法,本文講解了檢查系統(tǒng)總內(nèi)存、檢查某個(gè)程序的各類型內(nèi)存占用、檢查程序狀態(tài)、檢查程序各部分的內(nèi)存占用等內(nèi)容,需要的朋友可以參考下2015-03-03TextView使用SpannableString設(shè)置復(fù)合文本 SpannableString實(shí)現(xiàn)TextView的鏈接
這篇文章主要為大家詳細(xì)介紹了如何利用SpannableString實(shí)現(xiàn)TextView的鏈接效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08Android ListView萬能適配器實(shí)例代碼
本文主要介紹Android ListView萬能適配器,這里整理了詳細(xì)的資料及實(shí)現(xiàn)代碼,以及實(shí)現(xiàn)效果圖,有需要的小伙伴可以參考下2016-09-09