編輯:關於Android編程
package com.example.eventtest;
import java.util.ArrayList;
import android.os.Bundle;
import android.app.Activity;
import android.gesture.GestureOverlayView;
import android.gesture.GestureOverlayView.OnGestureListener;
import android.graphics.Point;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast;
public class MainActivity extends Activity {
double nLenStart = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
int nCnt = event.getPointerCount();
int n = event.getAction();
if( (event.getAction()&MotionEvent.ACTION_MASK) == MotionEvent.ACTION_POINTER_DOWN && 2 == nCnt)//2表示兩個手指
{
for(int i=0; i< nCnt; i++)
{
float x = event.getX(i);
float y = event.getY(i);
Point pt = new Point((int)x, (int)y);
}
int xlen = Math.abs((int)event.getX(0) - (int)event.getX(1));
int ylen = Math.abs((int)event.getY(0) - (int)event.getY(1));
nLenStart = Math.sqrt((double)xlen*xlen + (double)ylen * ylen);
}else if( (event.getAction()&MotionEvent.ACTION_MASK) == MotionEvent.ACTION_POINTER_UP && 2 == nCnt)
{
for(int i=0; i< nCnt; i++)
{
float x = event.getX(i);
float y = event.getY(i);
Point pt = new Point((int)x, (int)y);
}
int xlen = Math.abs((int)event.getX(0) - (int)event.getX(1));
int ylen = Math.abs((int)event.getY(0) - (int)event.getY(1));
double nLenEnd = Math.sqrt((double)xlen*xlen + (double)ylen * ylen);
if(nLenEnd > nLenStart)//通過兩個手指開始距離和結束距離,來判斷放大縮小
{
Toast.makeText(getApplicationContext(), "放大", 3000).show();
}
else
{
Toast.makeText(getApplicationContext(), "縮小", 3000).show();
}
}
return super.onTouchEvent(event);
}
}
基礎知識:
getAction()方法返回的是int類型,用到的只有低16位,其中:低八位是動作的類型,高8位是觸摸點索引值的表示(單點為0,雙點為1)
獲得動作類型: int action = event.getAction() & ACTION_MASK 或者使用 getActionMasked()
獲得觸摸點索引類型: int pointerIndex = (event.getAction() & ACTION_POINTER_INDEX_MASK ) >> ACTION_POINTER_INDEX_SHIFT
或者使用 getActionIndex()
Android應用開發中RecyclerView組件使用入門教程
RecyclerView是一種列表容器, 發布很久了, 才想起來寫點什麼.RecyclerView相比於ListView, 在回收重用時更具有靈活性, 也就是低耦合, 並
Android自定義Dialog簡單實例
做Android應用中,最缺少不了的就是自定義Dialog,對於系統默認提供的Dialog樣式,一般都不復合我們應用的樣式。自定義Dialog需要3步驟即可:1、主要的重
詳解Android中ViewPager的PagerTabStrip子控件的用法
我們先來看一個小例子:可以看到,效果實現的也是很棒,比之前自定義的標簽指示器更加的流暢。下面,簡單介紹一下 PagerTabStrip和它的使用。PagerTabStri
將替代ListView的RecyclerView 的使用詳解(一)
RecyclerView 是 android-support-v7-21 版本中新增的一個 Widgets, 還有一個 CardView 會在下次介紹使用。官方介紹 Re
android:用sql server2005(或Excel+sql server2005)+sqlserver2sqlite_converter工具
自己寫db文件方法有兩種:1、用sql server2005+sqlse