Dokunma teknolojisinin en temel kullanım alanlarından biri, kullanıcıya etkileşimleridir. Saat seçiciler, sanal klavyede tuşa basma ve metin seçenekleri, dokunsal geribildirimin iyi kullanım alanlarına örnektir. Daha fazla dokunma teknolojisinin ne zaman ve nasıl uygulanacağıyla ilgili bilgiler için, Dokunsal tasarım ilkeleri.
Bu sayfada, dokunsal geribildirim sağlamanın üç yolu açıklanmaktadır.
View
kullanın (önerilir). Bu yaklaşım eylem odaklıdır en geniş kapsamlı desteğe sahiptir veVIBRATE
iznini gerektirmez.- Önceden tanımlanmış bir
VibrationEffect
kullanın. Bu yaklaşım daha fazla esneklik sağlar, ancak bazı ödünleşimler vardır. - Temel öğelerle gelişmiş besteler kullanın. Bu yöntem daha yeni ve daha esnektir, ancak spesifik cihaz gerektirir destek.
Bu yöntemlerde, yüksek kalite sağlamak için cihaz düzeyinde tanımlanmış temel öğeler kullanılır geri bildirim almaktır.
Tüm dokunma teknolojisiyle geri bildirim yöntemleri, kullanıcının dokunmatik geri bildirim ayarlarını varsayılandır.
Dokunsal geribildirim oluşturmak için View
bileşenlerini kullanın
Dokunsal geribildirim oluşturmak için View.performHapticFeedback
yöntemini kullanın. İlgili içeriği oluşturmak için kullanılan
HapticFeedbackConstants
tarafından tanımlanan dokunma teknolojisi sabitleri,
işlevselliğini değil, sağlanan dokunma teknolojisi efektinin türünü dikkate almamalıdır.
Temel uygulama, cihaza ve donanıma göre değişiklik gösterebilir. ancak uygulamanın yalnızca sunulacak geri bildirim türünü dikkate alması göz atabilirsiniz. İşlevlere odaklanarak dokunma teknolojisini benzer etkileşimler için geri bildirim alırsınız. Kullanıcılar farklı anlamları ilişkilendirmeyi öğrenir farklı dokunma teknolojisinde çalışıyor.
Ön koşullar: Dokunsal geribildirimi etkinleştirin
View
görünür olduğu sürece etkinlikleri için dokunsal geribildirim kullanılabilir.
Uzun basma gibi bazı etkinliklerde,
görünümdeki işleyici etkinliği işler (true
değerini döndürür).
Android View
,
View.hapticFeedbackEnabled
mülkünü false
öğesine bağlayın. Bu özellik devre dışı bırakılıyor
varsayılan geri bildirim sağlar.
performHapticFeedback
yöntemi, sistem ayarını da dikkate alır.
HAPTIC_FEEDBACK_ENABLED
(kullanıcının potansiyel olarak devre dışı bırakmasına olanak tanır)
tüm sistem için geçerli.
Diğer dokunma teknolojisi API'lerinin aksine, HapticFeedbackConstants
bir View
ile kullanılır
VIBRATE
iznini gerektirmez.
HapticFeedbackConstant
seçin
View
bileşenlerini HapticFeedbackConstants
ile kullanırken gerek yoktur
bu sabit değerlerde yedek değer olacağı için belirli cihaz desteğini değerlendirmek
lütfen unutmayın. Tek dikkat edilmesi gereken, istenen SDK düzeyidir
sabittir.
1. Örnek: Tuşa basma
Bu, View
cihazındaki dokunmatik girişe dokunsal geribildirimin nasıl ekleneceğini gösteren bir örnektir.
otomatik olarak oluşturabilirsiniz. Efektler, basılı bir kalemin basılı tutma
düğmesini seçip bırakın.
Kotlin
class HapticTouchListener : View.OnTouchListener { override fun onTouch(View view, MotionEvent event) : Boolean { when (event.actionMasked) { MotionEvent.ACTION_DOWN -> view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY) MotionEvent.ACTION_UP -> view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY_RELEASE) } return true } }
Java
class HapticTouchListener implements View.OnTouchListener { @Override public boolean onTouch(View view, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY); break; case MotionEvent.ACTION_UP: view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY_RELEASE); break; } return true; } }
2. Örnek: Gönder düğmesi
Dokunsal geribildirim kullanım alanları,
olanak tanır. Ayrıca soyut bir anlamı aktarmak için de kullanılabilir. Örneğin,
genel beklentinin
CONFIRM
efekti:
çalışırken kısa ve ışık titreşimi
REJECT
,
daha güçlü geri bildirim sağlar. Bu, aşağıda gösterilmektedir
bir örneği inceleyelim.
Kotlin
submitButton.setOnClickListener { view -> val successful = performSubmit() if (successful) { view.performHapticFeedback(HapticFeedbackConstants.CONFIRM) } else { view.performHapticFeedback(HapticFeedbackConstants.REJECT) } }
Java
submitButton.setOnClickListener(view -> { boolean successful = performSubmit(); if (successful) { view.performHapticFeedback(HapticFeedbackConstants.CONFIRM); } else { view.performHapticFeedback(HapticFeedbackConstants.REJECT); } });
Dokunsal geribildirim oluşturmak için önceden tanımlanmış bir VibrationEffect
kullanın
View
tabanlı yaklaşımda kullanıcı etkileşimine odaklanılır. Evet
tercih edilir. Ancak önceden tanımlanmış
Özelleştirilmiş dokunsal geribildirim için VibrationEffect
API'ler de çağrılabilir
hoşuma gidiyor.
Önceden tanımlanmış efektler VibrationEffect
olarak kullanılabilir
sabit değerleri içerir ve
destek için kontrol edildi ve şurada gösterildiği gibi Vibrator
hizmetiyle oynandı:
örneklere göz atın.
VibrationEffect
API'lerinin cihaz desteğini anlayın
Temel kullanımda, kullanıcı desteğinin kontrol edilmesine gerek
VibrationEffect
API'leri Vibrator.areEffectsSupported
gibi API'ler
ve Vibrator.areAllEffectsSupported
, cihazda aşağıdakilerin mevcut olup olmadığını belirlemek için kullanılır:
sabitin özelleştirilmiş bir uygulamasıdır. Özelleştirilmiş bir efekt
uygulamanız yine de efektleri oynayabilir ve
yedek uygulama.
Daha fazla ayrıntı için Önceden tanımlanmış
VibrationEffect
değerleridir.
Ön koşullar: Vibratör'ü ve VIBRATE
iznini yükleyin
Çoğu titreşim, yüklenebilen Vibrator
hizmetiyle oynatılabilir
şu şekilde:
Kotlin
import android.os.Vibrator val vibrator = context.getSystemService(Vibrator::class.java)
Java
import android.os.Vibrator; Vibrator vibrator = context.getSystemService(Vibrator.class);
Uygulamanın
VIBRATE
izni sırayla
ve bu hizmeti kullanarak cihazı titreştirmeyin. İzin,
uygulama manifest dosyası:
<uses-permission android:name="android.permission.VIBRATE"/>
Önceden tanımlanmış bir VibrationEffect
oynatın
Önceden tanımlanmış efektler VibrationEffect.createPredefined
kullanılarak hazırlanabilir
daha sonra Vibrator
tarihinde vibrate
yöntemlerinden biri kullanılarak oynatıldı.
Bu örnekte bir Tıklama etkisi gösterilmektedir.
Kotlin
val vibrator = context.getSystemService(Vibrator::class.java) ... // Requires VIBRATE permission vibrator.vibrate(VibrationEffect.createPredefined(VibrationEffect.EFFECT_CLICK))
Java
Vibrator vibrator = context.getSystemService(Vibrator.class); ... // Requires VIBRATE permission vibrator.vibrate(VibrationEffect.createPredefined(VibrationEffect.EFFECT_CLICK));
Temel bileşenlerle gelişmiş besteler kullanma
VibrationEffect.Composition
API, aşağıdakiler için ek olanaklar sunar:
dokunsal geribildirim. Ancak efektlerin aksine bu temel öğelerin
yedekleriyle de etkileşim kurulabilir. Bu da her birinin
ve cihazın desteklediği diğer özellikler.
Bu API'lerin kullanımı şu bölümde daha ayrıntılı olarak açıklanmıştır: Özel Dokunsal Efektler Oluşturma.