बड़ी स्क्रीन पर इनपुट की सुविधा काम करती है

बड़ी स्क्रीन वाले डिवाइसों पर, उपयोगकर्ता अक्सर कीबोर्ड का इस्तेमाल करके ऐप्लिकेशन का इस्तेमाल करते हैं. माउस, ट्रैकपैड, स्टाइलस या गेमपैड का इस्तेमाल करें. ऐप्लिकेशन से इनपुट स्वीकार करने के लिए तो ये काम करें:

  • कीबोर्ड की बुनियादी सहायता टेस्ट करना, जैसे कि Tab और ऐरो बटन वाला कीबोर्ड नेविगेशन, बटन के लिए टेक्स्ट डालने की पुष्टि करें और मीडिया ऐप्लिकेशन में, स्पेस बार चलाने/रोकने वाला बटन डालें
  • जहां लागू हो, स्टैंडर्ड कीबोर्ड शॉर्टकट जोड़ें; उदाहरण के लिए, Ctrl + Z पहले जैसा करने के लिए और सेव करने के लिए Ctrl + S दबाएं
  • कॉन्टेक्स्ट देखने के लिए राइट क्लिक करके माउस के सामान्य इंटरैक्शन की जांच करें मेन्यू, माउस घुमाने पर आइकॉन में बदलाव, और माउस व्हील या ट्रैकपैड स्क्रोल इवेंट चालू कस्टम व्यू
  • ऐप्लिकेशन के हिसाब से बनाए गए इनपुट डिवाइसों को टेस्ट करें, जैसे कि ड्रॉइंग ऐप्लिकेशन, गेम के लिए स्टाइलस गेम के लिए कंट्रोलर और संगीत से जुड़े ऐप्लिकेशन के लिए एमआईडीआई कंट्रोलर
  • बेहतर इनपुट सपोर्ट पर विचार करें, ताकि आपका ऐप्लिकेशन दूसरों से अलग दिखे डेस्कटॉप एनवायरमेंट; उदाहरण के लिए, टचपैड का इस्तेमाल डीजे ऐप्लिकेशन के क्रॉस-फ़ेडर के तौर पर किया जा सकता है. गेम के लिए माउस कैप्चर और कीबोर्ड पर फ़ोकस करने वाले उपयोगकर्ता

कीबोर्ड

कीबोर्ड इनपुट पर आपका ऐप्लिकेशन जिस तरह से काम करता है, वह एक अच्छी बड़ी स्क्रीन पर काम करता है अनुभव. कीबोर्ड इनपुट तीन प्रकार के होते हैं: नेविगेशन, कीस्ट्रोक और शॉर्टकट.

टच पर आधारित ऐप्लिकेशन में कीबोर्ड नेविगेशन कभी-कभी लागू किया जाता है. हालांकि, उपयोगकर्ताओं के लिए जब वे किसी ऐप्लिकेशन का इस्तेमाल कर रहे हों और उन्होंने कीबोर्ड पर हाथ रखा हो. यह काम कर सकता है यह सुविधा उन उपयोगकर्ताओं के लिए भी ज़रूरी है जिन्हें फ़ोन, टैबलेट, फ़ोल्ड किए जा सकने वाले डिवाइस, और डेस्कटॉप डिवाइस भी.

कई ऐप्लिकेशन के लिए, ऐरो बटन और टैब नेविगेशन की ज़रूरत होती है. आम तौर पर, Android फ़्रेमवर्क अपने-आप हैंडल करते हैं. उदाहरण के लिए, Button पर डिफ़ॉल्ट रूप से फ़ोकस किया जा सकता है. आम तौर पर, कीबोर्ड नेविगेशन काम करना चाहिए बिना किसी अतिरिक्त कोड के. कीबोर्ड नेविगेशन को उन व्यू के लिए चालू करने के लिए जो: डिफ़ॉल्ट रूप से, फ़ोकस करने लायक नहीं है, तो डेवलपर को उन्हें फ़ोकस करने लायक के तौर पर मार्क करना चाहिए, को प्रोग्रामेटिक या एक्सएमएल में प्रोसेस किया जाना चाहिए, जैसा कि नीचे दिखाया गया है. यहां जाएं: फ़ोकस हैंडलिंग हमारा वीडियो देखें.

Kotlin

yourView.isFocusable = true

Java

yourView.setFocusable(true);

इसके अलावा, आपके पास अपनी लेआउट फ़ाइल में focusable एट्रिब्यूट सेट करने का भी विकल्प है:

android:focusable="true"

फ़ोकस चालू होने के बाद, Android फ़्रेमवर्क नेविगेशनल मैपिंग बनाता है की समीक्षा की जा सकती है. आम तौर पर, यह उम्मीद के मुताबिक काम करता है आपको कुछ और करने की ज़रूरत नहीं है. जब किसी की ज़रूरत नहीं होती, तो इसे इस तरह से बदला जा सकता है:

Kotlin

// Arrow keys
yourView.nextFocusLeftId = R.id.view_to_left
yourView.nextFocusRightId = R.id.view_to_right
yourView.nextFocusTopId = R.id.view_above
yourView.nextFocusBottomId = R.id.view_below

// Tab key
yourView.nextFocusForwardId = R.id.next_view

Java

// Arrow keys
yourView.setNextFocusLeftId(R.id.view_to_left);
yourView.setNextFocusRightId(R.id.view_to_left);
yourView.setNextFocusTopId(R.id.view_to_left);
yourView.setNextFocusBottomId(R.id.view_to_left);

// Tab key
yourView.setNextFocusForwardId(R.id.next_view);

अपने ऐप्लिकेशन के सभी फ़ंक्शन को ऐक्सेस करने की कोशिश करना एक अच्छा तरीका है रिलीज़ करने से पहले सिर्फ़ कीबोर्ड का इस्तेमाल करें. इस टूल को ऐक्सेस करना आसान होना चाहिए माउस या टच इनपुट के बिना होने वाली सबसे सामान्य कार्रवाइयां.

याद रखें कि सुलभता सुविधाओं वाले उपयोगकर्ताओं के लिए कीबोर्ड का इस्तेमाल करना ज़रूरी हो सकता है ज़रूरतें पूरी करता है.

कीस्ट्रोक

ऐसे टेक्स्ट इनपुट के लिए जिसे ऑन स्क्रीन वर्चुअल कीबोर्ड से हैंडल किया जाएगा (IME) जैसे, EditText, ऐप्लिकेशन बड़ी स्क्रीन वाले उन डिवाइसों पर उम्मीद के मुताबिक काम करना चाहिए जिनमें अलग से कोई काम नहीं करना पड़ता डेवलपर को चुनें. ऐसे कीस्ट्रोक के लिए जिनका फ़्रेमवर्क फ़्रेमवर्क से अनुमान नहीं लगाया जा सकता, ऐप्लिकेशन उन्हें खुद व्यवहार को हैंडल करना होता है. यह खास तौर पर उन ऐप्लिकेशन के लिए सही है जिनमें कस्टम व्यू.

उदाहरण के लिए, ऐसे चैट ऐप्लिकेशन जो मैसेज या मीडिया भेजने के लिए Enter बटन का इस्तेमाल करते हैं ऐसे ऐप्लिकेशन जो स्पेस बटन का इस्तेमाल करके, वीडियो चलाना शुरू और बंद करते हैं और कंट्रोल करने वाले गेम w, a, s, और d बटन का इस्तेमाल करें.

ज़्यादातर ऐप्लिकेशन onKeyUp() कॉलबैक करें और मिले हुए हर कीकोड के लिए अनुमानित व्यवहार जोड़ें, जैसा कि दिखाया गया है नीचे दिया गया है:

Kotlin

override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean {
    return when (keyCode) {
        KeyEvent.KEYCODE_ENTER -> {
            sendChatMessage()
            true
        }
        KeyEvent.KEYCODE_SPACE -> {
            playOrPauseMedia()
            true
        }
        else -> super.onKeyUp(keyCode, event)
    }
}

Java

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_ENTER) {
        sendMessage();
        return true;
    } else if (KeyEvent.KEYCODE_SPACE){
        playOrPauseMedia();
        return true;
    } else {
        return super.onKeyUp(keyCode, event);
    }
}

कोई बटन रिलीज़ होने पर onKeyUp इवेंट होता है. इस कॉलबैक का इस्तेमाल करने से, किसी कुंजी को दबाकर रखने पर, ऐप्लिकेशन को कई onKeyDown इवेंट प्रोसेस करने की ज़रूरत नहीं पड़ती या धीरे रिलीज़ किया जाता है. गेम और ऐप्लिकेशन, जो हर पल आपके लिए अहम जानकारी चाहते हैं दबाया गया या जो उपयोगकर्ताओं से यह उम्मीद करते हैं कि कीबोर्ड के बटन दबाए रखकर वे onKeyDown() इवेंट और दोहराए गए onKeyDown इवेंट को खुद मैनेज कर सकते हैं.

कीबोर्ड से जुड़ी सहायता देने के बारे में ज़्यादा जानकारी के लिए, यहां देखें कीबोर्ड से जुड़ी कार्रवाइयों को मैनेज करना.

शॉर्टकट

हार्डवेयर का इस्तेमाल करते समय, सामान्य Ctrl, Alt, और Shift पर आधारित शॉर्टकट की उम्मीद की जाती है कीबोर्ड. अगर कोई ऐप्लिकेशन इन्हें लागू नहीं करता है, तो लोगों के लिए परेशानी होती है. बेहतर उपयोगकर्ता भी अक्सर शॉर्टकट के इस्तेमाल को पसंद करते हैं ऐप्लिकेशन के लिए खास टास्क का इस्तेमाल किया. शॉर्टकट की मदद से, ऐप्लिकेशन इस्तेमाल करना और उसे दूसरों से अलग बनाना आसान हो जाता है कोई शॉर्टकट नहीं होता.

आम तौर पर इस्तेमाल किए जाने वाले कुछ शॉर्टकट में, Ctrl + S (सेव करें), Ctrl + Z (पहले जैसा करें), और Ctrl + Shift + Z (फिर से करें). ज़्यादा बेहतर शॉर्टकट के उदाहरण के लिए, देखें की सूची VLC मीडिया प्लेयर के शॉर्टकट बटन.

शॉर्टकट इनका इस्तेमाल करके लागू किए जा सकते हैं dispatchKeyShortcutEvent(). यह किसी दिए गए यूआरएल के सभी मेटा-की कॉम्बिनेशन (Alt, Ctrl, और Shift) को इंटरसेप्ट करता है कीकोड. किसी विशिष्ट मेटा-कुंजी की जांच करने के लिए, KeyEvent.isCtrlPressed() KeyEvent.isShiftPressed(), KeyEvent.isAltPressed(), या KeyEvent.hasModifiers().

शॉर्टकट कोड को दूसरे कीस्ट्रोक हैंडलिंग से अलग करना (जैसे कि onKeyUp() और onKeyDown()) कोड का रखरखाव आसान बना सकते हैं और डिफ़ॉल्ट में मेटा-कुंजी जांच को मैन्युअल रूप से लागू किए बिना मेटा-की को स्वीकार करना हर मामले में. सभी मेटा-की कॉम्बिनेशन की अनुमति देना, इन कामों के लिए ज़्यादा सुविधाजनक हो सकता है ऐसे उपयोगकर्ता जो अलग-अलग कीबोर्ड लेआउट और ऑपरेटिंग सिस्टम के अभ्यस्त हैं.

Kotlin

override fun dispatchKeyShortcutEvent(event: KeyEvent): Boolean {
  return when (event.keyCode) {
    KeyEvent.KEYCODE_O -> {
      openFile() // Ctrl+O, Shift+O, Alt+O
      true
    }
    KeyEvent.KEYCODE_Z-> {
      if (event.isCtrlPressed) {
        if (event.isShiftPressed) {
          redoLastAction() // Ctrl+Shift+Z pressed
          true
        } else {
          undoLastAction() // Ctrl+Z pressed
          true
        }
      }
    }
    else -> {
      return super.dispatchKeyShortcutEvent(event)
    }
  }
}

Java

@Override
public boolean dispatchKeyShortcutEvent(KeyEvent event) {
  if (event.getKeyCode() == KeyEvent.KEYCODE_O) {
      openFile(); // Ctrl+O, Shift+O, Alt+O
      return true;
  } else if(event.getKeyCode() == KeyEvent.KEYCODE_Z) {
      if (event.isCtrlPressed()) {
          if (event.isShiftPressed()) {
              redoLastAction();
              return true;
          }
          else {
              undoLastAction();
              return true;
          }
      }
  }
  return super.dispatchKeyShortcutEvent(event);
}

आप इनकी जांच करके onKeyUp() में भी शॉर्टकट लागू कर सकते हैं KeyEvent.isCtrlPressed(), KeyEvent.isShiftPressed(), या KeyEvent.isAltPressed() उसी तरह से कार्रवाई करनी होगी जैसा ऊपर बताया गया है. इसे बनाए रखना आसान हो सकता है, अगर मेटा-व्यवहार, ऐप्लिकेशन के काम करने के तरीके में शॉर्टकट से ज़्यादा बदलाव करता है. उदाहरण के लिए, जब W का मतलब है "आगे बढ़ें" और Shift + W का मतलब है "आगे बढ़ें".

Kotlin

override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean {
  return when(keyCode) {
    KeyEvent.KEYCODE_W-> {
      if (event.isShiftPressed) {
        if (event.isCtrlPressed) {
          flyForward() // Ctrl+Shift+W pressed
          true
        } else {
          runForward() // Shift+W pressed
          true
        }
      } else {
        walkForward() // W pressed
        true
      }
    }
    else -> super.onKeyUp(keyCode, event)
  }
}

Java

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_W) {
        if (event.isShiftPressed()) {
            if (event.isCtrlPressed()) {
                flyForward(); // Ctrl+Shift+W pressed
                return true;
            } else {
                runForward(); // Shift+W pressed
                return true;
            }
        } else {
            walkForward();
            return true;
        }
    }
    return super.onKeyUp(keyCode, event);
}

स्टाइलस

कई बड़ी स्क्रीन वाले डिवाइस में स्टाइलस होता है और Android ऐप्लिकेशन इसे टचस्क्रीन इनपुट कुछ डिवाइसों में यूएसबी या ब्लूटूथ ड्रॉइंग भी हो सकती है टेबल, जैसे Wacom Intuos पर टैप करें. Android ऐप्लिकेशन, ब्लूटूथ इनपुट पा सकते हैं, लेकिन वे यूएसबी इनपुट के साथ काम नहीं करेंगे.

स्टाइलस इवेंट को इसके ज़रिए टचस्क्रीन इवेंट के रूप में रिपोर्ट किया जाता है View.onTouchEvent() या View.onGenericMotionEvent(), और इसमें MotionEvent.getSource() का प्रकार SOURCE_STYLUS.

MotionEvent में अन्य डेटा भी शामिल होगा:

  • MotionEvent.getToolType() TOOL_TYPE_FINGER, TOOL_TYPE_STYLUS दिखाता है, या TOOL_TYPE_ERASER यह उनकी सतह के साथ संपर्क बनाने वाले टूल के आधार पर
  • MotionEvent.getPressure() इससे स्टाइलस पेन पर लगाए गए शारीरिक दबाव की जानकारी मिलती है (अगर यह सुविधा काम करती है)
  • MotionEvent.getAxisValue() MotionEvent.AXIS_TILT के साथ और MotionEvent.AXIS_ORIENTATION जिसका इस्तेमाल स्टाइलस के फ़िज़िकल झुकाव और ओरिएंटेशन को पढ़ने के लिए किया जा सकता है (अगर काम करता है)

ऐतिहासिक पॉइंट

Android, इवेंट को इनपुट के तौर पर बैच बनाता है और उन्हें हर फ़्रेम में एक बार डिलीवर करता है. स्टाइलस पेन इस सुविधा से, डिसप्ले से ज़्यादा फ़्रीक्वेंसी पर इवेंट रिपोर्ट किए जा सकते हैं. कॉन्टेंट बनाते समय हालाँकि, उन इवेंट को देखना ज़रूरी है जो हाल ही के getHistorical API का इस्तेमाल करके, पुराना करें:

  • MotionEvent.getHistoricalX()
  • MotionEvent.getHistoricalY()
  • MotionEvent.getHistoricalPressure()
  • MotionEvent.getHistoricalAxisValue()

हथेली के बीच की त्वचा का अस्वीकार होना

जब उपयोगकर्ता स्टाइलस का इस्तेमाल करके आपके ऐप्लिकेशन पर ड्रॉ करते हैं, लिखते हैं या उससे इंटरैक्ट करते हैं, तो वे कभी-कभी वे स्क्रीन को अपने हाथ की हथेली से स्पर्श कर सकते हैं. टच इवेंट (इस पर सेट करें ACTION_DOWN या ACTION_POINTER_DOWN) की रिपोर्ट आपके ऐप्लिकेशन को भेजी जा सकती है, ताकि सिस्टम, हथेली से अनजाने में टच होना.

Android, MotionEvent. अगर आपके ऐप्लिकेशन को ये सुविधाएं मिलती हैं ACTION_CANCEL, इसे रद्द करें हाथ के जेस्चर. अगर आपके ऐप्लिकेशन को ये सुविधाएं मिलती हैं ACTION_POINTER_UP जांचें कि क्या FLAG_CANCELED सेट हो गया है. अगर आपने इसलिए, जेस्चर को रद्द करें.

सिर्फ़ FLAG_CANCELED के लिए चेक न करें. Android 13 के बाद से, सुविधा के लिए, सिस्टम, ACTION_CANCEL इवेंट के लिए FLAG_CANCELED को सेट करता है, लेकिन पिछले वर्शन के लिए नहीं.

Android 12

Android 12 (एपीआई लेवल 32) और इससे पहले के वर्शन वाले डिवाइसों पर, पाम के अस्वीकार होने का पता लगाया जा सकता है यह सिर्फ़ सिंगल-पॉइंटर टच इवेंट के लिए है. अगर सिर्फ़ हथेली के टच से ही, सिस्टम, मोशन इवेंट ऑब्जेक्ट पर ACTION_CANCEL सेट करके इवेंट को रद्द कर देता है. अगर अन्य पॉइंटर काम नहीं कर रहे हैं, तो सिस्टम ACTION_POINTER_UP सेट करता है, जो हथेली के अस्वीकार होने का पता लगाने के लिए काफ़ी नहीं है.

Android 13

Android 13 (एपीआई लेवल 33) और उसके बाद के वर्शन वाले डिवाइसों पर, अगर सिर्फ़ हथेली के इशारों से काम करने वाला पॉइंटर है, तो ACTION_CANCEL और FLAG_CANCELED को चालू करके, सिस्टम इवेंट को रद्द कर देता है मोशन इवेंट ऑब्जेक्ट. अगर अन्य पॉइंटर काम नहीं करते हैं, तो सिस्टम सेट ACTION_POINTER_UP और FLAG_CANCELED.

जब भी आपके ऐप्लिकेशन को ACTION_POINTER_UP के साथ कोई मोशन इवेंट मिलता है, तो FLAG_CANCELED यह तय करने के लिए कि इवेंट के दौरान हथेली के अस्वीकार होने की स्थिति दिख रही है या नहीं (या अन्य इवेंट रद्द करना).

नोट लेने वाले ऐप्लिकेशन

ChromeOS का एक खास मकसद है. यह नोट लिखने की सुविधा देने वाले रजिस्टर किए गए ऐप्लिकेशन को इन कामों के लिए दिखाता है उपयोगकर्ता. नोट लेने की सुविधा देने वाले ऐप्लिकेशन के तौर पर किसी ऐप्लिकेशन को रजिस्टर करने के लिए, Android मेनिफ़ेस्ट:

<intent-filter>
    <action android:name="org.chromium.arc.intent.action.CREATE_NOTE" />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

ऐप्लिकेशन के रजिस्टर होने के बाद, उपयोगकर्ता उसे नोट लिखने के डिफ़ॉल्ट तरीके के तौर पर चुन सकता है है. नए नोट का अनुरोध किए जाने पर, ऐप्लिकेशन को खाली नोट बनाना चाहिए स्टाइलस इनपुट के लिए. जब उपयोगकर्ता किसी इमेज के बारे में (जैसे, स्क्रीनशॉट या डाउनलोड की गई इमेज), ऐप्लिकेशन लॉन्च होता है, जिसमें ClipData शामिल होता है content:// यूआरआई वाले एक या उससे ज़्यादा आइटम. ऐप्लिकेशन को एक ऐसा नोट बनाना चाहिए जो पहले अटैच की गई इमेज को बैकग्राउंड इमेज के तौर पर इस्तेमाल करता है और ऐसे मोड में जाता है जहां उपयोगकर्ता, स्टाइलस की मदद से स्क्रीन पर ड्रॉ कर सकता है.

बिना स्टाइलस के, नोट लेने के इंटेंट आज़माएं

यह जांच करने के लिए कि कोई ऐप्लिकेशन, नोट लेने के इंटेंट का सही तरीके से जवाब देता है या नहीं स्टाइलस, इस पर नोट लेने के विकल्पों को दिखाने के लिए, नीचे दिए गए तरीके का इस्तेमाल करें ChromeOS:

  1. डेवलपर मोड पर स्विच करें और डिवाइस पर काम करने के लिए उपलब्ध विकल्प को चुनें
  2. टर्मिनल खोलने के लिए, Ctrl + Alt + F2 दबाएं
  3. sudo vi /etc/chrome_dev.conf निर्देश चलाएं
  4. बदलाव करने के लिए i दबाएं और आखिर में --ash-enable-palette को नई लाइन में जोड़ें फ़ाइल की
  5. Esc दबाकर और फिर :, w, q टाइप करके और Enter दबाकर सेव करें
  6. सामान्य ChromeOS यूज़र इंटरफ़ेस (यूआई) पर वापस जाने के लिए, Ctrl + Alt + F1 दबाएं
  7. लॉग आउट करके फिर से साइन इन करें

अब शेल्फ़ में एक स्टाइलस मेन्यू दिखेगा:

  • शेल्फ़ में मौजूद स्टाइलस बटन पर टैप करें और नया नोट चुनें. यह खुल जाना चाहिए एक खाली ड्रॉइंग नोट.
  • स्क्रीनशॉट लें. शेल्फ़ से, स्टाइलस बटन > चुनें स्क्रीन कैप्चर करें या कोई इमेज डाउनलोड करें. "इमेज के बारे में जानकारी दें" का विकल्प होना चाहिए में सूचना पर टैप करें. इससे ऐप्लिकेशन खुल जाएगा, जिस पर मौजूद इमेज तैयार होगी व्याख्या की गई है.

माउस और टचपैड की सुविधा

ज़्यादातर ऐप्लिकेशन को आम तौर पर, तीन बड़ी स्क्रीन को ध्यान में रखकर ही ऐप्लिकेशन मैनेज करना होता है इवेंट: राइट-क्लिक, होवर, और खींचें और छोड़ें.

राइट क्लिक करें

ऐसी कोई भी कार्रवाई जिसकी वजह से कोई ऐप्लिकेशन संदर्भ मेन्यू दिखाता है. जैसे, CANNOT TRANSLATE आइटम को राइट क्लिक करने पर भी प्रतिक्रिया देनी चाहिए. राइट क्लिक को मैनेज करने के लिए इवेंट, ऐप्लिकेशन को View.OnContextClickListener. संदर्भ मेन्यू बनाने के बारे में जानकारी के लिए, यहां देखें काम के मेन्यू बनाना.

Kotlin

yourView.setOnContextClickListener {
  showContextMenu()
  true
}

Java

yourView.setOnContextClickListener(v -> {
    showContextMenu();
    return true;
});

कर्सर घुमाएं

डेवलपर अपने ऐप्लिकेशन के लेआउट को बेहतरीन और इस्तेमाल में आसान बना सकते हैं होवर इवेंट हैंडल करने में. खास तौर पर, कस्टम व्यू के मामले में ऐसा होता है. दो सबसे ज़्यादा इसके कुछ सामान्य उदाहरण हैं:

  • उपयोगकर्ताओं को यह बताना कि कोई एलिमेंट इंटरैक्टिव तरीके से काम करता है या नहीं. माउस पॉइंटर आइकॉन को बदलकर, क्लिक किया जा सकने वाला या बदलाव किया जा सकता है
  • पॉइंटर के न होने पर, बड़ी सूची या ग्रिड में मौजूद आइटम के लिए विज़ुअल फ़ीडबैक जोड़ना उनके ऊपर कर्सर घुमाना

Kotlin

// Change the icon to a "hand" pointer on hover,
// Highlight the view by changing the background.
yourView.setOnHoverListener { view, _ ->
  addVisualHighlighting(true)
  view.pointerIcon =
    PointerIcon.getSystemIcon(view.context,
    PointerIcon.TYPE_HAND)
  false // listener did not consume the event.
}

Java

yourView.setOnHoverListener((view, event) -> {
    addVisualHighlighting(true);
    view.setPointerIcon(PointerIcon
            .getSystemIcon(view.getContext(), PointerIcon.TYPE_HAND));
    return true;
});

खींचें और छोड़ें

मल्टी-विंडो वाले एनवायरमेंट में, उपयोगकर्ता आइटम को खींचकर छोड़ने की सुविधा की उम्मीद करते हैं एक-दूसरे से कनेक्ट होते हैं. यह बात डेस्कटॉप डिवाइसों के साथ-साथ टैबलेट, फ़ोन, और स्प्लिट स्क्रीन मोड में फ़ोल्ड किए जा सकने वाले डिवाइस.

डेवलपर को यह देखना चाहिए कि उपयोगकर्ता, आइटम को है. कुछ सामान्य उदाहरणों में ये शामिल हैं: फ़ोटो संपादकों को ये मिल सकती हैं उन्हें ऑडियो फ़ाइलें, ऑडियो फ़ाइलें, और ड्रॉइंग मिल सकती हैं. प्रोग्राम में फ़ोटो होनी चाहिए.

'खींचें और छोड़ें' सुविधा जोड़ने के लिए, Android दस्तावेज़ को खींचें और छोड़ें और उस पर एक नज़र डालें इस पर ChromeOS ब्लॉग पोस्ट.

ChromeOS के लिए ध्यान देने वाली खास बातें

  • ऐक्सेस करने के लिए, requestDragAndDropPermissions से अनुमति मांगें ऐप्लिकेशन के बाहर से खींचे गए आइटम
  • किसी आइटम को खींचकर ले जाने के लिए, उसमें View.DRAG_FLAG_GLOBAL फ़्लैग का होना ज़रूरी है अन्य ऐप्लिकेशन में बदलें

पॉइंटर के लिए बेहतर सहायता

माउस और टचपैड इनपुट को बेहतर तरीके से हैंडल करने वाले ऐप्लिकेशन को, के लिए Android दस्तावेज़ View.onGenericMotionEvent() और इसका इस्तेमाल करें MotionEvent.getSource() के बीच अंतर करने के लिए SOURCE_MOUSE और SOURCE_TOUCHSCREEN.

ज़रूरी व्यवहार को लागू करने के लिए, MotionEvent की जांच करें:

  • हलचल से ACTION_HOVER_MOVE इवेंट जनरेट होते हैं.
  • बटन, ACTION_BUTTON_PRESS और ACTION_BUTTON_RELEASE इवेंट जनरेट करते हैं. सभी माउस/ट्रैकपैड बटन की मौजूदा स्थिति का इस्तेमाल करके भी, getButtonState().
  • माउस व्हील स्क्रोल करने से ACTION_SCROLL इवेंट जनरेट होते हैं.

गेम कंट्रोलर

बड़ी स्क्रीन वाले कुछ Android डिवाइसों पर, ज़्यादा से ज़्यादा चार गेम कंट्रोलर काम करते हैं. डेवलपर को स्टैंडर्ड Android गेम कंट्रोलर के एपीआई का इस्तेमाल करना चाहिए उन्हें (सहायता गेम कंट्रोलर देखें).

बटन को सामान्य मैपिंग के बाद, सामान्य वैल्यू के हिसाब से मैप किया जाता है. माफ़ करें, गेम कंट्रोलर बनाने वाली सभी कंपनियों को मैप करने का एक जैसा तरीका इस्तेमाल नहीं करना पड़ता. अगर आप उपयोगकर्ताओं को अलग-अलग लोकप्रिय कंट्रोलर मैपिंग के बारे में जानकारी. यहां जाएं: गेमपैड के बटन दबाने पर कार्रवाई करना हमारा वीडियो देखें.

इनपुट अनुवाद मोड

ChromeOS में डिफ़ॉल्ट रूप से इनपुट अनुवाद मोड चालू होता है. ज़्यादातर Android ऐप्लिकेशन के लिए इस मोड की मदद से, डेस्कटॉप पर ऐप्लिकेशन उम्मीद के मुताबिक काम कर सकते हैं. कुछ उदाहरण टचपैड और माउस पर दो उंगलियों से स्क्रोल करने की सुविधा को अपने-आप चालू करने की सुविधा शामिल करें व्हील स्क्रोल करना, और विंडो कोऑर्डिनेट के साथ रॉ डिसप्ले कोऑर्डिनेट मैप करना. आम तौर पर, ऐप्लिकेशन डेवलपर को इनमें से कोई भी सुविधा लागू करने की ज़रूरत नहीं होती खुद को सुरक्षित रखने की कोशिश करते हैं.

अगर कोई ऐप्लिकेशन कस्टम इनपुट व्यवहार लागू करता है, जैसे कि कस्टम इनपुट व्यवहार को परिभाषित करना टचपैड पर दो उंगलियों से पिंच करने की कार्रवाई, या इन इनपुट अनुवाद की सुविधा उपलब्ध नहीं है ऐप्लिकेशन को भेजे जाने वाले इनपुट इवेंट को रिकॉर्ड नहीं किया जाता, तो आपके पास इनपुट अनुवाद की सुविधा को बंद करने का विकल्प होता है मोड को अपडेट करें:

<uses-feature
    android:name="android.hardware.type.pc"
    android:required="false" />

अन्य संसाधन