Android Haptic Feedback: Titreşim Efektleri Ekli Uygulaması

Android cihazlarda kullanıcı etkileşimini güçlendirmenin en basit yolu titreşim (haptic feedback) eklemektir. Düğmeye basıldığında, bildirim geldiğinde ya da oyun olaylarında titreşim vermek, uygulamaya daha canlı bir his katıyor.

Android'de bu işi Vibrator API ile yaparsın. Manifest dosyasına izin eklemeyi unutma, sonra VibrationEffect kullanarak farklı titreşim desenleri tanımlayabilirsin.

1// AndroidManifest.xml içine ekle
2<uses-permission android:name="android.permission.VIBRATE" />

Aşağıda basit bir Activity'de titreşim efektleri uyguladım. Düğmelere basıldığında farklı titreşimler tetikleniyor.

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası
1import android.os.Vibrator;
2import android.os.VibrationEffect;
3import android.content.Context;
4import androidx.appcompat.app.AppCompatActivity;
5import android.os.Bundle;
6import android.widget.Button;
7
8public class MainActivity extends AppCompatActivity {
9private Vibrator vibrator;
10
11@Override
12protected void onCreate(Bundle savedInstanceState) {
13super.onCreate(savedInstanceState);
14setContentView(R.layout.activity_main);
15
16vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
17
18Button btnBasit = findViewById(R.id.btn_basit);
19Button btnDesen = findViewById(R.id.btn_desen);
20Button btnGuc = findViewById(R.id.btn_guc);
21
22btnBasit.setOnClickListener(v -> titresBasit());
23btnDesen.setOnClickListener(v -> titresDesen());
24btnGuc.setOnClickListener(v -> titresGuclu());
25}
26
27private void titresBasit() {
28if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q) {
29vibrator.vibrate(VibrationEffect.createPredefined(
30VibrationEffect.EFFECT_CLICK));
31} else {
32vibrator.vibrate(50);
33}
34}
35
36private void titresDesen() {
37long[] desen = {0, 100, 50, 100, 50, 100};
38if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
39vibrator.vibrate(VibrationEffect.createWaveform(desen, -1));
40} else {
41vibrator.vibrate(desen);
42}
43}
44
45private void titresGuclu() {
46if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q) {
47vibrator.vibrate(VibrationEffect.createPredefined(
48VibrationEffect.EFFECT_HEAVY_CLICK));
49} else {
50vibrator.vibrate(100);
51}
52}
53}

Layout dosyasına üç düğme ekle:

1<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
2android:layout_width="match_parent"
3android:layout_height="match_parent"
4android:orientation="vertical"
5android:gravity="center">
6
7<Button
8android:id="@+id/btn_basit"
9android:layout_width="wrap_content"
10android:layout_height="wrap_content"
11android:text="Basit Titreş" />
12
13<Button
14android:id="@+id/btn_desen"
15android:layout_width="wrap_content"
16android:layout_height="wrap_content"
17android:text="Desen Titreş" />
18
19<Button
20android:id="@+id/btn_guc"
21android:layout_width="wrap_content"
22android:layout_height="wrap_content"
23android:text="Güçlü Titreş" />
24</LinearLayout>

Çıktı: Düğmelere basıldığında sırasıyla kısa tıkla, ritimli desen ve güçlü titreşim hissedilir.

Sık yapılan hata: Build.VERSION kontrolü yapmadan eski Android sürümlerinde VibrationEffect kullanmak. API 26 altında vibrator.vibrate(long) metodunu kullan. Ayrıca titreşim izni manifest'te yoksa çalışmaz; runtime izin isteme gerekebilir Android 6.0+ için.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz