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 ekle2<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.
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;78public class MainActivity extends AppCompatActivity {9private Vibrator vibrator;1011@Override12protected void onCreate(Bundle savedInstanceState) {13super.onCreate(savedInstanceState);14setContentView(R.layout.activity_main);1516vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);1718Button btnBasit = findViewById(R.id.btn_basit);19Button btnDesen = findViewById(R.id.btn_desen);20Button btnGuc = findViewById(R.id.btn_guc);2122btnBasit.setOnClickListener(v -> titresBasit());23btnDesen.setOnClickListener(v -> titresDesen());24btnGuc.setOnClickListener(v -> titresGuclu());25}2627private 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}3536private 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}4445private 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">67<Button8android:id="@+id/btn_basit"9android:layout_width="wrap_content"10android:layout_height="wrap_content"11android:text="Basit Titreş" />1213<Button14android:id="@+id/btn_desen"15android:layout_width="wrap_content"16android:layout_height="wrap_content"17android:text="Desen Titreş" />1819<Button20android: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.
0 yorum