Dokunma teknolojisinin en temel kullanım alanlarından biri, kullanıcı etkileşimlerine geri bildirim sağlamaktır. Zaman seçiciler, sanal klavyeye basmak ve metin seçimi, dokunsal geribildirim için iyi kullanım alanlarına örnek olarak verilebilir. Dokunma teknolojisinin ne zaman ve nasıl uygulanacağı hakkında daha fazla bilgi için Dokunsal tasarım ilkeleri konusunu okuyun.
Bu sayfada, dokunsal geribildirim sağlamanın üç yolu açıklanmaktadır.
View
(önerilir) kullanın. Bu yaklaşım eylem odaklıdır, en geniş desteğe sahiptir veVIBRATE
iznini gerektirmez.- Önceden tanımlanmış bir
VibrationEffect
kullanın. Bu yaklaşım daha fazla esnekliğe sahiptir ancak bazı ödünler içerir. - Temel öğelerle gelişmiş kompozisyonlar kullanın. Bu yöntem daha yeni ve daha esnektir ancak belirli cihaz desteği gerektirir.
Bu yöntemler, elinizdeki cihaza göre özelleştirilmiş yüksek kaliteli geri bildirimler sağlamak için cihaz düzeyinde tanımlanan temel öğeleri kullanır.
Tüm dokunsal geri bildirim yöntemleri, varsayılan olarak kullanıcının dokunma geri bildirimi ayarlarına uyar.
Dokunsal geri bildirim oluşturmak için View
bileşenlerini kullanın
Dokunsal geri bildirim oluşturmak için View.performHapticFeedback
yöntemini kullanın. HapticFeedbackConstants
tarafından tanımlanan dokunsal sabitler, gerçekleştirilen dokunsal efektin türüne değil, uygulamadaki işlevlerine odaklanır.
Temel uygulama, cihaz ve donanım özelliklerine bağlı olarak değişiklik gösterebilir ancak uygulamanın yalnızca belirli bir bağlamda sağlamak için geri bildirim türünü dikkate alması gerekir. İşlevselliğe odaklanarak, benzer etkileşimler için dokunmatik geri bildirimi etkinleştirebilirsiniz. Kullanıcılar zamanla farklı dokunsal hislerle farklı anlamları ilişkilendirmeyi öğrenirler.
Ön koşullar: Dokunsal geri bildirimi etkinleştirme
View
görünür olduğu sürece ilgili etkinliklerde dokunsal geri bildirim kullanılabilir.
Uzun basma gibi bazı etkinlikler, görünümdeki bir işleyici etkinliği işleme alırsa tetiklenen varsayılan dokunma teknolojisine sahiptir (true
döndürür).
Android View
, View.hapticFeedbackEnabled
özelliğini false
değerine ayarlayarak dokunsal geri bildirimi devre dışı bırakabilir. Bu özelliğin devre dışı bırakılması
varsayılan geri bildirimle sonuçlanır.
performHapticFeedback
yöntemi, HAPTIC_FEEDBACK_ENABLED
sistem ayarını da dikkate alır. Bu ayar, kullanıcının bu ayarı tüm sistem için devre dışı bırakmasına olanak tanır.
Diğer dokunsal API'lerin aksine, HapticFeedbackConstants
öğesini View
ile kullanmak için VIBRATE
izni gerekmez.
Bir HapticFeedbackConstant
seçin
View
bileşenlerini HapticFeedbackConstants
ile kullanırken belirli cihaz desteğini değerlendirmenize gerek yoktur. Çünkü bu sabit değerler, gerektiğinde yedek davranışı sergileyebilir. Dikkate alınan tek nokta, istenen sabit değerin SDK düzeyidir.
1. Örnek: Tuşa basma
Bu, dokunmatik dinleyicileri kullanarak View
içindeki bir dokunma girişine nasıl dokunsal geri bildirim ekleneceğine dair bir örnektir. Efektler, bir düğmeyi basılı tutup bırakma hissini
simüle eder.
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 geri bildirim kullanım alanları, cihazla fiziksel bir etkileşimi simüle etmenin ötesine geçer. Bunlar soyut bir anlam aktarmak için de kullanılabilir. Örneğin, CONFIRM
etkisinin genel beklentisi kısa ve hafif titreşimken REJECT
, hata sinyalini vermek için daha güçlü bir geri bildirim olabilir. Bu, bir gönder düğmesi geri bildirimi
için aşağıdaki örnekte gösterilmektedir.
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 geri bildirim oluşturmak için önceden tanımlanmış bir VibrationEffect
kullanma
View
tabanlı yaklaşım, kullanıcı etkileşimine odaklanır. Sistem genelinde tutarlılık için tercih edilir. Bununla birlikte, özelleştirilmiş dokunsal geri bildirim efektleri için önceden tanımlanmış belirli VibrationEffect
API'leri de çağrılabilir.
Önceden tanımlanmış efektler VibrationEffect
sabit değerleri olarak kullanılabilir. Ayrıca, aşağıdaki örneklerde gösterildiği gibi desteklenmeleri için kontrol edilebilir ve Vibrator
hizmetiyle oynatılabilir.
VibrationEffect
API'lerinin cihaz desteğini anlama
Temel kullanımda VibrationEffect
API'lerinin ayrı ayrı desteklenip desteklenmediğinin kontrol edilmesine gerek yoktur. Vibrator.areEffectsSupported
ve Vibrator.areAllEffectsSupported
gibi API'ler, cihazda sabit değerin özelleştirilmiş bir şekilde uygulanıp uygulanmadığını belirlemek için kullanılır. Özelleştirilmiş bir efekt yoksa uygulamanız yine de efektleri oynatabilir ve platform tanımlı bir yedek uygulama kullanabilir.
Diğer ayrıntılar için Önceden tanımlanmışVibrationEffect
bölümünü inceleyin.
Ön koşullar: Vibratör'ü ve VIBRATE
iznini yükleme
Çoğu titreşim Vibrator
hizmetiyle oynatılabilir. Bu hizmet aşağıdaki gibi yüklenebilir:
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 bu hizmeti kullanarak cihazı titreştirebilmesi için VIBRATE
iznine sahip olması gerekir. Bu izin, uygulama manifest dosyasına eklenebilir:
<uses-permission android:name="android.permission.VIBRATE"/>
Önceden tanımlanmış bir VibrationEffect
çal
Önceden tanımlanmış efektler, VibrationEffect.createPredefined
ile hazırlanabilir, ardından Vibrator
üzerinde vibrate
yöntemlerinden biri kullanılarak oynatılabilir.
Bu örnekte bir Tıklama efekti vardır.
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));
Gelişmiş besteleri temel öğelerle kullanma
VibrationEffect.Composition
API, dokunsal geri bildirim için ek olanaklar sunar. Ancak efektlerden farklı olarak bu temel öğelerin sistem düzeyinde yedekleri yoktur. Bu nedenle, cihaz tarafından desteklenen temel öğelere ve diğer özelliklere dikkat edilmesi gerekir.
Bu API'lerin kullanımı, Özel Dokunsal Efektler Oluşturma bölümünde daha ayrıntılı olarak ele alınmaktadır.