2010-06-29 11 views
9

In questo momento tutto ciò che sto tentando di fare è rilevare quando lo schermo viene premuto e quindi visualizzare un messaggio di registro per confermare che è successo. Il mio codice finora è stato modificato dal codice di esempio di CameraPreview (alla fine farà una foto) in modo che la maggior parte del codice si trovi in ​​una classe che estende SurfaceView. API per il codice di esempio dell'SDK è 7.Come posso rilevare l'input tattile su Android

risposta

19

Prova il codice qui sotto per rilevare gli eventi di tocco.

mView.setOnTouchListener(new OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     //show dialog here 
     return false; 
    } 
}); 

Per mostrare la finestra di dialogo utilizzare il metodo Attività showDialog(int). Devi implementare onCreateDialog(). Vedi la documentazione per i dettagli.

4

ho fatto in questo modo:

public class ActivityWhatever extends Activity implements OnTouchListener 
{ 

    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.yourlayout); 

     //the whole screen becomes sensitive to touch 
     mLinearLayoutMain = (LinearLayout) findViewById(R.id.layout_main); 
     mLinearLayoutMain.setOnTouchListener(this); 
    } 

    public boolean onTouch(View v, MotionEvent event) 
    { 
     // TODO put code in here 

     return false;//false indicates the event is not consumed 
    } 
} 

nel xml della visualizzazione, specificare:

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@+id/layout_main"> 

    <!-- other widgets go here--> 

</LinearLayout> 
13

Ecco un semplice esempio su come rilevare un semplice sul touch evento, ottenere coordinate e mostra un brindisi. L'evento in questo esempio è Action Down, Move e Action up.

import android.app.Activity; 
import android.os.Bundle; 
import android.view.MotionEvent; 
import android.widget.Toast; 

public class MainActivity extends Activity { 

    private boolean isTouch = false; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    @Override 
    public boolean onTouchEvent(MotionEvent event) { 

     int X = (int) event.getX(); 
     int Y = (int) event.getY(); 
     int eventaction = event.getAction(); 

     switch (eventaction) { 
      case MotionEvent.ACTION_DOWN: 
       Toast.makeText(this, "ACTION_DOWN AT COORDS "+"X: "+X+" Y: "+Y, Toast.LENGTH_SHORT).show(); 
       isTouch = true; 
       break; 

      case MotionEvent.ACTION_MOVE: 
       Toast.makeText(this, "MOVE "+"X: "+X+" Y: "+Y, Toast.LENGTH_SHORT).show(); 
       break; 

      case MotionEvent.ACTION_UP: 
       Toast.makeText(this, "ACTION_UP "+"X: "+X+" Y: "+Y, Toast.LENGTH_SHORT).show(); 
       break; 
     } 
     return true; 
    } 
} 
Problemi correlati