2010-06-29 5 views
9

पर टच इनपुट का पता कैसे लगा सकता हूं अभी मैं बस इतना करने की कोशिश कर रहा हूं कि स्क्रीन दबाए जाने पर पता चल जाए और फिर यह पुष्टि करने के लिए एक लॉग संदेश प्रदर्शित करें। मेरा कोड अब तक कैमराप्रवाह नमूना कोड से संशोधित है (यह अंत में एक तस्वीर ले जाएगा) ताकि कोड का बड़ा हिस्सा उस वर्ग में हो जो SurfaceView को बढ़ाता है। एसडीके से उदाहरण कोड के लिए एपीआई 7.मैं एंड्रॉइड

उत्तर

19

स्पर्श ईवेंट का पता लगाने के लिए नीचे दिए गए कोड का प्रयास करें।

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

संवाद उपयोग गतिविधि गतिविधि showDialog(int) दिखाने के लिए। आपको क्रिएटडिअलॉग() पर लागू करना होगा। विवरण के लिए दस्तावेज़ीकरण देखें।

4

मैं इस तरह यह था:

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 
    } 
} 
आपके विचार की एक्सएमएल में

, निर्दिष्ट करें:

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

यहाँ कैसे स्पर्श घटना पर एक साधारण पता लगाने के लिए पर एक सरल उदाहरण है, coords मिल और एक टोस्ट दिखाओ। इस उदाहरण में एक्शन डाउन, मूव एंड एक्शन अप है।

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; 
    } 
} 
संबंधित मुद्दे