Android Tarih ve Saat, Zaman, Bugün, Şimdi, Şu An

SimpleDateFormat bugun = new SimpleDateFormat(“yyyy/MM/dd”);
Android uygulamamızda ihtiyacımız olabilecek tarih ve saat işlemleri, zaman, şimdi, şu an yapıları.

Android Java Kodları: Bugünün tam tarihi

Android Java Kodları: Şimdi, Dakikasına kadar bugünün tarihini öğrenme

Tarih Saat Yapılarını Farklı Şekillerde Kullanabilirsiniz

Yedekleme veya benzeri işlemler için indirilen dosyaların isimlendirilmelerinde sık kullanılan yapılar.
Örnek: 20171229_ftpYedek.zip, 20171229-1416_ftpYedek.zip

gün yyyyMMdd_
saat yyyyMMddHH_
dakika yyyyMMddHHmm_
saniye yyyyMMddHHmmss_
salise yyyyMMddHHmmssSSS_

Android Json Parse Etmek Volley Kütüphanesi Kullanımı

Hostunuz üzerinde bulunan veya uzaktan erişiminiz olan bir json dosyasına android programınızdan erişmek ve verileri bir liste içerisinde gösterebilmek için en kullanışlı yapı aşağıdaki şekildedir.

Json dosyasınız farklı yapıda ise düzenleme gerekebilir.

Json dosyası

Devamını Oku

Android Studio Hatası: Error:CreateProcess error=216

Error:CreateProcess error=216, This version of %1 is not compatible with the version of Windows you're running. Check your computer's system information and then contact the software publisher

Android Studio güncelleme sonrası veya karşılaşılan hata mesajı;
Error:CreateProcess error=216, Bu %1 sürümü çalıştırdığınız Windows sürümüyle uyumlu değil. Programın x86 (32 bit) veya x64 (64 bit) sürümünün gerekip gerekmediğini anlamak için, bilgisayarınızın sistem bilgilerine bakın ve yazılımın yayıncısına başvurun.

Error:CreateProcess error=216, This version of %1 is not compatible with the version of Windows you’re running. Check your computer’s system information and then contact the software publisher.

Çözüm için yapılması gereken

Android Studio programı menüsünden File > Project Structure > SDK Location yolu takip edilerek;
Use Embedded JDK seçimi pasif hale getirilmeli,
Altındaki satırda Program Files içerisindeki Java Klasörü altındaki son sürüm JDK klasörü seçilmeli.
C:\Program Files\Java\jdk1.8.0_112 gibi.

Android Studio Yavaş ise Hızlandırma

android studio hızlandırma

Android Studio açılışı ve genel kullanımını hızlandırmak için aşağıdaki adımları takip edin. Açıkcası bu kadar fark beklemiyordum. Gözle görülür bir hız artışı yaşadığım için bu ayarları kaydetmek istedim. Faydalı olur inşallah.

 

Gradle Scripts altındaki gradle.properties içerisine aşağıdaki satırları ekliyoruz.

org.gradle.daemon=true
org.gradle.parallel=true
android studio yavaş çalışıyor

 

File > Settings > Build… > Build Tools > Gradle penceresinde Offline work kutucuğunu seçin.
android studioyu hızlandırmak

 

 

Bir alt menü seçeneği olan Compiler penceresinde Command-line Options kutucuğuna –offline değerini girin.
android studio hızlandırma

 

Android studio programını yeniden başlattığınızda yavaşlık sorununuz çözüme kavuşmuş olacak. Kolay gelsin. İyi çalışmalar.

Android Local Webview, Yerel Html Css Dosya Kullanımı

çok hızlı android uygulama yapımı local webview html css

Android Local Webview ile çok hızlı bir şekilde android uygulaması yapabilirsiniz. Eğer rehbere ulaşmak, sms göndermek, lokasyon erişimi gibi standart android işlevlerini kullanmayacaksanız uygulamanızın app/src/main/assets klasöründe oluşturacağınız html dosyalarıyla içeriğinizin görüntülenmesini sağlayabilirsiniz.
Bu klasör içerisinde oluşturacağınız html ve css dosyaları bildiğiniz web sitesi yapımında kullandığınız mantıkta işlev görecektir. Bu html dosyalarının görüntülenmesi için webview görünümünün çağırılmasında gerekli kodları android studio kullanarak oluşturmanız yeterli.

Adı webview olsada yerel kullanıma yönelik olduğu için uygulamanızın herhangi bir internet iznine ihtiyacı yoktur.

html dosyalarınız app/src/main/assets dizininde yer alması gerektiğini vurgulamış olsakta MainActivity içerisinde yer alan dizin tanımlamamız şu şekilde olmalıdır “file:///android_asset/index.html”
yani gerçek klasör olan assets’deki s tanımlama yolunda yok. Kullanım bu şekildedir kafanız karışmasın.

Dosya yollarını daha detaylı görmek isterseniz
https://github.com/tasarhane/webview-yerel-html-css

Örnek android studio projesi ile html dosyalarının çağırılması için gerekli minimal kod yapısı kullanılmaya çalışılmıştır. Proje API15: Android 4.0.3, API17: Android 4.2 (Jelly Bean) ve API23: Android 6.0 (Marshmallow) sürümleri ile test edilmiş ve sorunsuz çalışmaktadır.

Yeni proje oluşturma adımlarımız aşağıdaki şekilde;

  1. Projemize LocalWebView adını verdik,
  2. Minimum SDK için API15: Android 4.0.3 (IceCreamSandwich) tercih ettik,
  3. Şablon aşamasında Empty Activity seçimini yaptık

MainActivity.java

activity_main.xml

AndroidManifest.xml

Android Başlatıcı Yapımı, Basit Launcher

Android Başlatıcı Yapımı, genel olarak launcher ifadesiyle bilinen bu aracın oluşturulması için izlenmesi gerek adımlar normal bir android uygulama yapımı için izlenenlerle aynıdır. Toplamda 4 dosyada yapacağınız düzenlemeler ile kendi başlatıcınıza sahip olabilirsiniz.
Konu ileride güncelleneceği düşüncesiyle şimdilik minimal ihtiyaçlarla hazırlanmış bu 4 dosyayı paylaşmaktayız.

Uygulamalarda genel olarak API 15 kullanmaktayız zira an itibariyle %97.4’lük bir kullanım oranına sahiptir.

Android Açılış Ekranı Splash Screen Yapımı

android splash screen yapımı android açılış ekranı yapmak

Android studio ile yeni splash screen, açılış ekranı özellikli bir proje oluşturma adımlarını şu şekilde geçiyoruz.

  1. Projeye isim belirleniyor.
  2. Minimum SDK Api 15 seçiliyor. Cihazların %97.3’ü destekler olmuş güzel bir oran.
  3. Empty Activity seçiliyor. Hızlıca kurulsun, temiz olsun, çabuçak bitsin deyi.
  4. Finish ile bitiriliyor.

MainActivity.java dosyamıza arkadaş bir java dosyası oluşturup adını AcilisEkrani olarak belirliyor ve içerisine aşağıdaki kodları yapıştırıyoruz.

Dizin yapısının daha anlaşılır olduğu github sayfasını inceleyebilirsiniz.
https://github.com/tasarhane/splashscreen

Res klasörü altındaki Layout klasörü içerisine yeni bir xml dosyası oluşturarak adını acilis_ekrani.xml yapıyor ve içerisine aşağıdaki kodları atıyoruz. Aşağıdaki kodlar belirlediğiniz bir metni siyah arkaplan üzerinde ve ortalı bir şekilde yer almasını sağlayan basit bir yapı.

Son olarak AndroidManifest.xml dosyasında splash screen, açılış ekranımızın kategorisini LAUNCHER ve MainActivity’ninkini DEFAULT yaparak işlemleri bitiriyoruz.

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 studio emulatör hatası çö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

Android Speech Recognition – Example

Standart arayüz yerine özel dialog kutusu ile ses algılama uygulaması yapımı

Android Speech Recognition Without Dialog In A 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.