編輯:關於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()
RecyclerView是一種列表容器, 發布很久了, 才想起來寫點什麼.RecyclerView相比於ListView, 在回收重用時更具有靈活性, 也就是低耦合, 並
做Android應用中,最缺少不了的就是自定義Dialog,對於系統默認提供的Dialog樣式,一般都不復合我們應用的樣式。自定義Dialog需要3步驟即可:1、主要的重
我們先來看一個小例子:可以看到,效果實現的也是很棒,比之前自定義的標簽指示器更加的流暢。下面,簡單介紹一下 PagerTabStrip和它的使用。PagerTabStri
RecyclerView 是 android-support-v7-21 版本中新增的一個 Widgets, 還有一個 CardView 會在下次介紹使用。官方介紹 Re
自己寫db文件方法有兩種:1、用sql server2005+sqlse