Android記錄單點和多點觸控的位置

爲了完成可以記錄滑動和縮放的位置信息,嘗試了包括GestureDector類和OnTouchListener類,雖然能夠很好的識別具體手勢,可是在區分單點還是多點觸控方面還是有些欠缺。

本文對TextView進行監聽,在position中顯示記錄觸控的痕跡。

tv = (TextView)findViewById(R.id.textv);
position = (TextView)findViewById(R.id.position);


通過對event.getPointerCount()來對點的數目進行判斷

    通過ACYION_POINTER_DOWN對第二個點進行記錄,同時記得用這個參數時要配合ACTION_MASK在switch語句

tv.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                switch (event.getAction()& MotionEvent.ACTION_MASK){
                    case MotionEvent.ACTION_DOWN:
                        position.setText("N1S"+" ("+<span style="font-family: Arial, Helvetica, sans-serif;">event.getX()</span><span style="font-family: Arial, Helvetica, sans-serif;">+" , "+</span><span style="font-family: Arial, Helvetica, sans-serif;">event.getY()</span><span style="font-family: Arial, Helvetica, sans-serif;">+")");</span><span style="font-family: Arial, Helvetica, sans-serif;">
</span>                        break;
                    case MotionEvent.ACTION_POINTER_DOWN:
                        position.append("N2S"+" ("+<span style="font-family: Arial, Helvetica, sans-serif;">event.getX()</span><span style="font-family: Arial, Helvetica, sans-serif;">+" , "+</span><span style="font-family: Arial, Helvetica, sans-serif;">event.getY()</span><span style="font-family: Arial, Helvetica, sans-serif;">+")");</span><span style="font-family: Arial, Helvetica, sans-serif;">
</span>                        break;
                    case MotionEvent.ACTION_MOVE:
                        if(event.getPointerCount()<2 ){
                        position.append("M" + " (" + event.getX() + " , " + event.getY() + ")");}
                        else{
                            position.append("TM"+" (" + event.getX(0) + " , " + event.getY(0) + ")"
                                    +" (" + event.getX(1) + " , " + event.getY(1) + ")");
                        }
                }
                return true;
            }
        });



發佈了41 篇原創文章 · 獲贊 15 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章