Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

Android में दिए गए पोजीशन पर टच इवेंट कैसे सिमुलेट करें?

Android में onTouchEvent से टच इवेंट हैंडल करना

यह उदाहरण दर्शाता है कि Activity या View में onTouchEvent() को ओवरराइड करके टच इवेंट्स (डाउन, मूव, अप) कैसे प्राप्त करें और उनके निर्देशांक कैसे पढ़ें।

चरण 1: नया प्रोजेक्ट बनाएं

Android Studio में File → New Project चुनें।

चरण 2: लेआउट फ़ाइल (res/layout/activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="4dp"
    tools:context=".MainActivity">
</RelativeLayout>

चरण 3: MainActivity में टच हैंडलिंग (src/MainActivity.java)

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    private boolean isTouching = 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 action = event.getAction();

        switch (action) {
            case MotionEvent.ACTION_DOWN:
                // उंगली स्क्रीन पर आई
                Toast.makeText(this, "DOWN - X: " + x + " Y: " + y, Toast.LENGTH_SHORT).show();
                isTouching = true;
                break;

            case MotionEvent.ACTION_MOVE:
                // उंगली घिस रही है
                if (isTouching) {
                    Toast.makeText(this, "MOVE - X: " + x + " Y: " + y, Toast.LENGTH_SHORT).show();
                }
                break;

            case MotionEvent.ACTION_UP:
                // उंगली उठी
                Toast.makeText(this, "UP - X: " + x + " Y: " + y, Toast.LENGTH_SHORT).show();
                isTouching = false;
                break;

            case MotionEvent.ACTION_CANCEL:
                // इवेंट कैंसल हुआ
                isTouching = false;
                break;
        }

        // true लौटाएं = इवेंट खाया गया, false = पैरेंट को पास करें
        return true;
    }
}

MotionEvent एक्शन कॉन्स्टेंट्स

कॉन्स्टेंट विवरण
ACTION_DOWN पहला टच डाउन
ACTION_MOVE टच के दौरान मूवमेंट
ACTION_UP टच रिलीज
ACTION_CANCEL जेस्चर कैंसल
ACTION_POINTER_DOWN मल्टी-टच: अतिरिक्त पॉइंटर डाउन
ACTION_POINTER_UP मल्टी-टच: अतिरिक्त पॉइंटर अप

मल्टी-टच के लिए पॉइंटर इंडेक्स

// मल्टी-टच के लिए पॉइंटर इंडेक्स और ID का उपयोग करें
int pointerIndex = event.getActionIndex();
int pointerId = event.getPointerId(pointerIndex);
float x = event.getX(pointerIndex);
float y = event.getY(pointerIndex);

चरण 4: AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="app.com.sample">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity android:name=".MainActivity">
            <intent-filter>
                
                
            </intent-filter>
        </activity>

    </application>
</manifest>
💡 नोट: यह उदाहरण टच इवेंट प्राप्त करने (observe) का है, न कि प्रोग्रामेटिकली इंजेक्ट करने (simulate/inject) का। टच इंजेक्शन के लिए रूट परमिशन और `Instrumentation` या `adb shell input tap` चाहिए।

ऐप चलाएं

ऐप लॉन्च करें, स्क्रीन पर कहीं भी टच/ड्रैग/रिलीज करें, और टोस्ट में निर्देशांक देखें।

Android में दिए गए पोजीशन पर टच इवेंट कैसे सिमुलेट करें?

Android में दिए गए पोजीशन पर टच इवेंट कैसे सिमुलेट करें?

  1. Android ऐप में शेक इवेंट का पता कैसे लगाएं? Android ऐप में शेक इवेंट का पता कैसे लगाएं?

    Android में शेक इवेंट डिटेक्शन का पूरा गाइड यह ट्यूटोरियल आपको दिखाएगा कि Android ऐप में एक्सेलेरोमीटर सेंसर का उपयोग करके शेक जेस्चर का पता कैसे लगाया जाता है। यह फीचर गेमिंग ऐप्स, म्यूजिक प्लेयर्स या किसी भी ऐसे ऐप के लिए उपयोगी हो सकता है जहां यूजर इंटरैक्शन के लिए फिजिकल शेक का उपयोग किया जाता ह

  1. Android में SearchView से RecyclerView कैसे फ़िल्टर करें? Android में SearchView से RecyclerView कैसे फ़िल्टर करें?

    Android में SearchView से RecyclerView फ़िल्टर करना यह ट्यूटोरियल दिखाता है कि कैसे RecyclerView में SearchView का उपयोग करके रियल-टाइम फ़िल्टरिंग इम्प्लीमेंट की जाती है, Filterable इंटरफेस और कस्टम एडाप्टर के साथ। चरण 1: प्रोजेक्ट और निर्भरताएं Android Studio में नया प्रोजेक्ट बनाएं। RecyclerView

  1. एंड्रॉइड में गूगल मैप पर टच और उसकी स्थिति कैसे डिटेक्ट करें एंड्रॉइड में गूगल मैप पर टच और उसकी स्थिति कैसे डिटेक्ट करें

    Google Maps SDK में कैमरा चेंज लिस्टनर्स के माध्यम से मैप इंटरेक्शन डिटेक्ट करना Google Maps Android SDK सीधा ऑन मैप क्लिक लिस्टनर प्रदान नहीं करता (मार्कर क्लिक के अलावा)। इसके बजाय, OnCameraMoveStartedListener, OnCameraMoveListener, OnCameraIdleListener का उपयोग करके यूजर जेस्चर (पैन, जूम, टैप) डि