最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android觸屏測試實例代碼

 更新時間:2014年07月30日 10:23:36   投稿:shichen2014  
這篇文章主要介紹了Android觸屏測試實例代碼,可實現(xiàn)對一些常用事件的響應及處理,對Android初學者有很好的借鑒價值,需要的朋友可以參考下

本文實例詳細描述了Android觸屏測試代碼,可實現(xiàn)對觸屏的點擊、移動、離開等事件的處理,對于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構造器創(chuàng)建ImageView對象*/ 
   mImageView01 =(ImageView) findViewById(R.id.myImageView1);
   /*將圖片從Drawable賦值給ImageView來呈現(xiàn)*/
   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)
  {
   /*默認微調(diào)圖片與指針的相對位置*/
   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)
   );
  }
  
  /*自定義一發(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ù),使其功能更加豐富。

相關文章

最新評論

盐亭县| 大港区| 绍兴县| 饶阳县| 敖汉旗| 沅陵县| 长顺县| 余干县| 藁城市| 乡宁县| 桐梓县| 和静县| 津南区| 永兴县| 二连浩特市| 安阳县| 南召县| 黑水县| 曲水县| 饶平县| 察隅县| 乐清市| 宁明县| 喀什市| 新津县| 临海市| 霍林郭勒市| 闽清县| 沈阳市| 平阴县| 乐山市| 聂拉木县| 周宁县| 景东| 尼木县| 长治市| 罗江县| 谢通门县| 铁岭市| 寿光市| 襄汾县|