2010-05-13 18 views
7

आप एक बटन हैप्टिक फ़ीडबैक प्रदान करना चाहते हैं (यानी, फोन बहुत संक्षेप में कंपन तो आप महसूस कर सकते हैं कि तुम सच में बटन धक्का दिया) में घटना बनाम hapticFeedbackEnabled, मानक तरीका क्या ऐसा करने के लिए? यह आप या तो स्पष्ट कंपन करने के लिए मिलीसेकेंड के एक नंबर दे रही है एक onClick() इवेंट सेट और कंपन() फ़ंक्शन कॉल कर सकते हैं, लगता है, या आप को ध्यान में रखते hapticFeedbackEnabled सेट कर सकते हैं।एंड्रॉयड: स्पर्शिक फ़ीडबैक: onClick() दृश्य

प्रलेखन से संकेत मिलता है कि बाद ही लंबे समय से प्रेस या आभासी परदे पर चाबी के लिए काम करता है लगता है: अगर यह सही है http://developer.android.com/reference/android/view/View.html#performHapticFeedback(int)

, तो मैं या तो मेरे बटन एक आभासी परदे पर कुंजी या मैन्युअल रूप से बनाने की जरूरत है ऑनक्लिक() ईवेंट सेट करें।

आप क्या सुझाव है?

इसके अलावा, अगर मैं तुरंत कंपन करना चाहता हूं तो उपयोगकर्ता की उंगली बटन को छूती है, जब उनकी उंगली बटन को "रिलीज़" करती है, तो इसे पूरा करने का सबसे अच्छा तरीका क्या है?

संबंधित प्रश्न: How to enable haptic feedback on button view

उत्तर

0

मुझे लगता है कि कंपन बुला() मैन्युअल रूप से नहीं एक अच्छा विचार है। यह कोई है जो हैप्टिक फ़ीडबैक नहीं चाहता उसका फोन हिल होगा मतलब होगा। इसके अलावा मुझे नहीं पता कि यह गैर-कंपन उत्पादों पर कैसे प्रतिक्रिया करता है। setHapticFeedbackEnabled निश्चित रूप से यह करने के लिए अच्छा तरीका है; विधि इस विशिष्ट purpopse के लिए बनाया गया था।

+0

धन्यवाद चंद्रमा। एडवर्ड के जवाब पर मेरी टिप्पणी देखें। – dreeves

+0

setHapticFeedbackEnabled (true) का उपयोग बिल्कुल कुछ भी नहीं करता है। इस बात की कोई गारंटी नहीं है कि यह आपके डिवाइस को हैप्टिक फीडबैक का उपयोग करेगा। –

3

मैं अपने कैलक्यूलेटर ऐप में कंपन() का उपयोग करता हूं, लेकिन ऐसा इसलिए था क्योंकि जब मैंने इसे लिखा था तो सिस्टम में कोई हप्पी प्रतिक्रिया नहीं थी। मैं कई कारणों से उस दृष्टिकोण की अनुशंसा नहीं करता हूं। विशेष रूप से, हर फोन विभिन्न विशेषताओं (मास, थरथानेवाला मोटर, मोटर स्थिति, आदि) तो क्या "लगता है" एक फोन पर सही दूसरे पर सही नहीं होगा है।

हालांकि, यह मानना ​​उचित है कि व्यक्तिगत फोन निर्माताओं ने अपने विशेष उत्पादों पर कम से कम "ट्यूनिंग" किया है, इसलिए अंतर्निहित हैप्टीक फीडबैक में बोर्ड भर में सही महसूस करने का एक बेहतर मौका है।

इसके अतिरिक्त, जैसा कि ऊपर बताया गया है, यदि आप अपनी खुद की हैप्टीक फीडबैक लागू करते हैं, तो आपको अपनी प्राथमिकताओं में इसके लिए अपनी सेटिंग लागू करने की आवश्यकता होगी। उपयोगकर्ता को सिस्टम-व्यापी आधार पर सेट करने के लिए बहुत बेहतर है।

समय परमिट (हा!) मैं सिस्टम की अंतर्निर्मित हैप्टीक प्रतिक्रिया का उपयोग करने के लिए कंपन() का उपयोग करने से स्विच करने की योजना बना रहा हूं।

+0

धन्यवाद एडवर्ड। मैं अभी भी अस्पष्ट हूं कि यह वास्तव में कैसे किया जाता है। उदाहरण के लिए, आप अपने बटन "वर्चुअल ऑन-स्क्रीन कुंजियां" कैसे बनाते हैं और क्या मैं सही हूं कि सामान्य (हाई-प्रेस नहीं) बटन प्रेस पर हैप्पीक फीडबैक प्राप्त करने का यही एकमात्र तरीका है? – dreeves

+2

मेरे स्रोत कोड को देखते हुए, मुझे लगता है कि मैंने कुछ भी चालाक नहीं किया है। मेरे सभी बटन उसी फ़ंक्शन पर वापस कॉल करते हैं, जो से शुरू होता है (keyclick && vibrator! = Null) vibrator.vibrate (KEYCLICK_TIME); जहां "कंप्रेसर" कंप्रेसर = (वाइब्रेटर) प्राप्त सिस्टम सिस्टम (Context.VIBRATOR_SERVICE) से प्राप्त किया गया था; अहह, मैं देख रहा हूं कि आप क्या प्राप्त कर रहे हैं। आप इसे बटन विजेट्स के लिए काम करना चाहते हैं और दस्तावेज़ीकरण का तात्पर्य है कि यह केवल वर्चुअल कीबोर्ड के लिए है। क्षमा करें, इसके साथ प्रयोग नहीं किया है। –

0

विसर्जन ने Android Haptic Feedback SDK विकसित किया है, जो वास्तविकता एंड्रॉइड ओएस और ऐप्स को लाता है। खेलों के लिए प्रतीक्षा करें :)

1

मेरा एकमात्र समाधान अब तक ऑनक्लिक लिस्टनर बटन में performHapticFeedback पर कॉल करना है। यह काम करता है, लेकिन यह एक हैक की तरह लगता है।

4

Android Cookbook - Chapter Haptic Feedback

सार में एक लंबे समय तक वर्णन नहीं है: वहाँ कई कदम की जरूरत हैं:

  • बटन/दृश्य
  • रजिस्टर एक के लिए हैप्टिक फ़ीडबैक सक्षम प्रकट
  • में कंपन सक्षम अपने बटन
  • पर 0Tपर टच डाउन
  • पर टच श्रोता

आप दोनों हैप्टिक फ़ीडबैक के लिए एक onTouchLister और अपनी कार्रवाई के लिए एक onClickHandler हो सकता है, बस सुनिश्चित onTouchHandler झूठी लौटाता हो, अन्यथा घटना के रूप में सेवन किया और onClickHandler को नहीं दिया चिह्नित है।

संबंधित मुद्दे