Android觸屏測試實例代碼
本文實例詳細(xì)描述了Android觸屏測試代碼,可實現(xiàn)對觸屏的點(diǎn)擊、移動、離開等事件的處理,對于Android初學(xué)者有很好的借鑒價值。
具體功能代碼如下:
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)變量作為存儲圖片寬高,位置使用*/
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;
/* 設(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;
/*移動位置*/
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)
{
/*默認(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();
}
}
}
讀者還可以在該實例的基礎(chǔ)上完善各種事件的響應(yīng)處理函數(shù),使其功能更加豐富。
相關(guān)文章
Android自定義帶增長動畫和點(diǎn)擊彈窗提示效果的柱狀圖DEMO
這篇文章主要介紹了Android自定義帶增長動畫和點(diǎn)擊彈窗提示效果的柱狀圖的相關(guān)資料,非常不錯具有一定的參考借鑒價值,需要的朋友可以參考下2016-11-11
Android自定義View 實現(xiàn)水波紋動畫引導(dǎo)效果
在android程序開發(fā)中,我們經(jīng)常簡單通過自定義view實現(xiàn)水波紋動畫引導(dǎo)功能,下面通過本文給大家分享實現(xiàn)代碼,需要的朋友參考下2017-01-01
Android開發(fā)之Sqliteopenhelper用法實例分析
這篇文章主要介紹了Android開發(fā)之Sqliteopenhelper用法,實例分析了SQLiteOpenHelper類操作數(shù)據(jù)庫的相關(guān)技巧,需要的朋友可以參考下2015-05-05
Flutter Http網(wǎng)絡(luò)請求實現(xiàn)詳解
這篇文章主要介紹了Flutter Http網(wǎng)絡(luò)請求實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
Android實現(xiàn)支持所有View的通用的下拉刷新控件
這篇文章主要介紹了Android實現(xiàn)支持所有View的通用的下拉刷新控件的相關(guān)資料,需要的朋友可以參考下2016-06-06
Android 通知使用權(quán)(NotificationListenerService)的使用
這篇文章主要介紹了Android 通知使用權(quán)(NotificationListenerService)的使用的相關(guān)資料,需要的朋友可以參考下2017-06-06
Android WebView通過動態(tài)的修改js去攔截post請求參數(shù)實例
這篇文章主要介紹了Android WebView通過動態(tài)的修改js去攔截post請求參數(shù)實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03
Android軟鍵盤顯示模式及打開和關(guān)閉方式(推薦)
這篇文章主要介紹了Android軟鍵盤顯示模式及打開和關(guān)閉方式(推薦),非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-02-02
Android控件系列之相冊Gallery&Adapter適配器入門&控件縮放動畫入門
本文介紹了如何使用Gallery打造簡單的相冊,并實現(xiàn)了與用戶點(diǎn)擊的互動動畫,并介紹了適配器的原理。您可以在此基礎(chǔ)上修改,實現(xiàn)自己的相冊,嵌入到任何程序中都會增色不少2012-11-11

