Android Mesaj Gösterme, Toast Kodunu Metod ile Kullanmak

Android uygulama geliştirme uğraşları esnasında sıklıkla ekranda mesaj gösterme ihtiyacı hissedilmektedir. Bu amaçlada kullanılan kod kalıbı aşağıdaki şekildedir.

Tekrar tekrar kullanılacak bu kod öbeğini her seferinde tekrar yazmak yerine bir metoda atayabilmek mümkündür.

Mesajımız her seferinde farklı olabileceğinden tek değişkenli, parametreli bir metod aşağıdaki şekilde yazılabilir.

Bu tek değişkenli metodumuzu kullanımı ise şu şekilde;

Toast kelimesine yakın ve onu hatırlattığı için tost ismi verdiğimiz metodu siz istediğiniz gibi adlandırabilirsiniz. Örneğin mesaj, mesajGoster ya da sadece msj diyebilirsiniz.

Eğer sıklıkla kullanılması düşünülüyor ve gösterim süresinin kısa veya uzun olmasıda değişkene atanmak isteniyorsa;

Bu sayede tost metodu yazı özellikli mesaj ve sayı özellikli sure değişkenlerine sahip oldu.
Anlaşıldığı üzere LENGTH_SHORT ekranda kalma süresinin kısalığını ifade etmekte, LENGTH_LONG ise uzun süreli gösterimi.
Kullanımı şu şekilde;

Virgülden sonraki 1 mesajın uzun gösterileceğini belirtmiş oldu. 0 olsaydı daha kısa süreli gösterilecekti. Aslında metodumuza göre 0’dan başka ne yazarsanız uzun süreli gösterime sahip olacaktır. Çünkü 0 ise kısa değilse uzun süreli göster dendi kendisine.

Bu arada metodlarla ilgili detaylı bilgi için;
http://java.com.tr/index.php/2014-03-20-14-22-35/temel-java/18-java-methods

 

Yeni Toast Mesajını Derhal, Anında Göstermek

Tekrar eden tıklamalar, dokunmalar sonucu arka arkaya beliren mesajlar can sıkıcı olabilmektedir. Yani bir kullanıcı 20 kere mesaj gösterilecek düğmelere dokunduğunda (niye yapacaksa öyle bir şey demeyin) hepsi tıklanan sıralamada gösterilinceye kadar uzunca bir süre gececektir.
Bunun yerine başka bir düğmeye dokunulduğunda (yeni bir toast mesajı tetiklendiğinde) önceki iptal olarak yenisinin gösterildiği bir metod yazılabilir.

Bunun için öncelikle MainActivity’nin onCreate metodundan önce Toast tanımlaması yapılmalı.

Şimdi yeni Toast Metodumuz aşağıdaki şekilde olacaktır. onCreate metodundan sonra konumlandırabilirsiniz.

Basitçe yapılan global tanımlama ile t isminde Toast tanımlayıp metodumuza t boş değilse onu iptal etmesini söylemek ve verilen bilgilere göre yeni Toast mesajını göstermesi sağlamak şeklindedir.
Böylelikle diğer mesajların kaybolmasını beklemeden yeni mesajlar gösterilebilecektir.

Kullanımda ise herhangi bir değişiklik yok. Mesajınızı ekrana çağırmak için;

Tabi String olduğu sürece Toast mesajı için metin yerine kodda kullanılabilir;

Kolay gelsin.

Dip, Dp, Sp Nedir? Android Tasarım Terimleri Ölçüler

Android Tasarımlarında Ölçü Birimleri

Android tasarımlarında yani layout, xml dosyalarında belirli öğelerde ölçü değişikliği yapmak istediğimiz zaman kullanabileceğimiz farklı birimler vardır. Bunlar sırasıyla;

  • dp, dip – density independent pixels
  • sp – scale independent pixels
  • pt – points
  • px – pixels
  • mm – milimeters
  • in – inches

Dp, Dip Nedir?

Yoğunluk bağımsız piksel olarak çevirebileceğimiz dp veya dip cihaz ekranının fiziksel yoğunluğuna bağlı soyut birimlerdir.
Bu tanımlamayı tamamlayabilmek için dpi kullanacağız ki oda dot per inch yani inç başına düşen nokta sayısı demek oluyor. 160dpi bir ekranda 1dp 1 piksele eşit olmaktadır. 320dpi bir ekranda ise 1dp 2 piksele eşit olacaktır. Anlaşılacağı üzere dp orantısal bir birimdir ve farklı ekranlarda aynı oranları yakalayabilmek için tasarlanmıştır.

Dp Formulü / Hesaplaması şu şekilde yapılmaktadır;
dp = (piksel genişlik * 160) / dpi

Örnek olarak 1200 piksel genişliğe sahip 320dpi bir android cihazda genişlik değeriniz 600dp olacaktır.
(1200 * 160) / 320 = 600dp

Aşağıdaki kodda 20dp margin değeri 160dpi bir ekranda 20piksel ve 320dpi bir ekranda ise 40piksel olacaktır.

<Button android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”@string/clickme”
android:layout_margin=”20dp” />

Videolu açıklama isterseniz Android tarafının hazırladığı şu videoya göz atabilirsiniz. Android video derslerinden density independent pixels.

Ekran dokunuşlarında yeterli alanı sağlamak için önerilen parmak genişliği 50dp’dir.

 Sp Nedir?

Ölçek bağımsız piksel, dp birimine benzer olup aynı zamanda kullanıcının font boyutu tercihi ile ilişkilidir bu nedenle yazı boyutları tanımlamaları için daima sp kullanımı tavsiye edilmektedir!

<TextView android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:textSize=”20sp” />

Android Emulator Hatası HAXM Çözümü

Android uygulama yapımına yeni başlayanların bir sorunu olan android emulator hatası HAXM çözümü için aşağıdaki adımları takip etmeniz gerekmektedir.
Muhtemel android emulator hata mesajınız
Please ensure Intel HAXM is properly installed and usable hatası
cpu acceleration status: hax kernel module is not installed! hatası
Android – ERROR: x86 HAXM kernel module is not installed
gibi farklı şekillerde olabilir.

AMD Kullanıcıları için android emulator hatası çözüm adımları

Tıklanması gereken her yer için tıkla ve benzeri terimler kullanmadan açılan pencerelerde tıklanması gereken yerin ismi direk telaffuz edilmiştir.

  1. AVD Manager
  2. Create Virtual Device
  3. Nexus 5 seçili iken Clone Device
  4. Yeni isim verip ayarları aynı bırakarak Ok
  5. Next
  6. Show downloadable system images
  7. Lollipop / 21 / armeabi-v7a / Android 5.0 -> Download
  8. İndirdiğiniz versiyonu seçip Next
  9. Finish
  10. AVD Manager Kapat
  11. Run App
  12. Launch Emulator
  13. Oluşturulan Klonu Seç ve Ok

Android Emulatorün Daha Hızlı Çalışması için

2 GB rame sahip bir bilgisayarda yapılan denemeye göre 3. adımda klonlanan cihazı farklı seçebileceğiniz (mesela Nexus S) gibi 7. adımda 21. API yerine 17. API’yi (ya da daha düşük api hedefliyorsanız onu) seçerseniz ilk açılış ve genel kullanım daha hızlı olacaktır.

4. adımda ayarları aynı bırakabileceğiniz gibi kullanmayacağınız kamera ve sensör özelliklerini kaldırabilirsiniz. Düşük sistemli bilgisayarlar için ne kadar az ihtiyaç olursa verimlilik artacaktır.

 

Android Emulator Hatasının çözüm adımlarını ilgili videoyu izleyerek gerçekleştirin.

 

Android Emulator Hatası Devam Eden Sorunlar

Cannot set up guest memory ‘android_arm’: Invalid argument
Hatası alırsanız klonladığınız cihazın ayarlarına girerek tanımladığınız ram değerini düşürün.
Android Virtual Device Manager Açın
Cihazınız hizasında sağdaki kalem simgesine tıklayın
Show Advanced Settings > Memory and Storage > Ram yolunu izleyerek değeri düşürün
2 GB ramli bir bilgisayarınız varsa değeri 512ye kadar düşürmeniz gerekebilir. Denenen 2GB ramli sistemde 768 mb değeriyle çalışmada sorun çıkmamışıtır.
Finish

Tekrar Run’a tıklayıp cihanızı seçerek emulatörünüzü başlatabilirsiniz.
Android emulatörün ilk açılışı biraz zaman alacaktır.
Kolay gelsin.

 

İlgili bağlantılar üzerinden benzer android emulator hataları ve diğer android hataları ile ilgili görüşlere ulaşılabilinir.

http://stackoverflow.com/search?q=android+emulator

https://groups.google.com/forum/#!searchin/android-developers/android$20emulator

Sesi Yazıya Çevirme Speech to Text Android Dersleri

Android Uygulama Yapımı Sesi Yazıya Çevirme Dersleri
Speech to Text
Ufak bir kütüphane olması amacıyla hazırlanan bu android dersleri yazısında konuyla ilgili araştırmalar yaparken bulunan faydalı kaynaklar bir araya toplanmaya çalışılmıştır.

 

Türkçe kaynaklar
http://www.akilliyazilim.org/category/androiddersleri
https://gelecegiyazanlar.turkcell.com.tr/konu/android/egitim/301

Android Speech To Text API

Android Speech to Text Tutorial

Başka bir örnek
http://www.learn2crack.com/2013/12/android-speech-recognition-example.html

Standart arayüz yerine özel dialog kutusu ile ses algılama uygulaması yapımı
http://www.truiton.com/2014/06/android-speech-recognition-without-dialog-custom-activity/

Ses algılama özelliğinin durması sorunu/hatası ile ilgili görüşler
http://stackoverflow.com/questions/13670378/voice-recognition-stops-listening-after-a-few-seconds

Önemli bağlantılar
http://developer.android.com/reference/android/speech/package-summary.html

 

Diğer farklı ortamlar için ses tanıma, ses algılama sistemleri, yöntemleri.

Youtube mp3 indirme Mp4 çevirici site youtube dönüştürücü

Youtube mp3 indirme, mp4 çevirici site youtube dönüştürücü