2010-06-29 9 views
9

Im Moment versuche ich nur zu erkennen, wenn der Bildschirm gedrückt wird und dann eine Protokollmeldung anzuzeigen, um zu bestätigen, dass es passiert ist. Mein Code wurde bisher vom CameraPreview-Beispielcode abgeändert (er wird eventuell ein Bild aufnehmen), so dass sich der Großteil des Codes in einer Klasse befindet, die SurfaceView erweitert. API für den Beispielcode aus dem SDK ist 7.Wie erkenne ich die Touch-Eingabe auf dem Android

Antwort

19

Versuchen Sie den folgenden Code, um Berührungsereignisse zu erkennen.

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

Zum Anzeigen Dialog verwenden Activity-Methode showDialog(int). Sie müssen onCreateDialog() implementieren. Details finden Sie in der Dokumentation.

4

ich so kam es:

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 
    } 
} 

im xml Ihrer Ansicht angeben:

<?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

Hier ist ein einfaches Beispiel dafür, wie auf Berührungsereignis ein einfaches zu erkennen, erhalten coords und zeigen Sie einen Toast. Das Ereignis in diesem Beispiel sind Action Down, Move und 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; 
    } 
} 
Verwandte Themen