19 Şubat 2015 Perşembe

Android Çoklu Resim Seçme


Bu sıralar üzerinde çalıştığım projede çoklu resim seçme gibi bir özelliğin olması gündeme geldi. Android' de galeriden ya da kameradan seçenekleriyle kullanıcıya resim seçtirebiliyoruz evet ama bu işlemin sonucu bize tek bir resim dönüyor. Galeriden tek seferde bir çok resim seçebilmek için şu şekilde bir çözüm düşündüm:
 Telefon hafızasındaki tüm resimleri çekip kendi oluşturduğum gridview gömerek kullanıcıya bu resimleri gösterebilmeliydim.
GridView' in her elemanına bir checkBox koyarak kullanıcının seçeceği resimleri işaretlemesini sağlamalıydım.
Seçtiğim resimlerden dönen yolları (paths) Universal Image Loader kütüphanesi sayesinde imageviewlere verip ekranda seçilen resimleri göstermeliydim.

Tüm resimleri hafızadan alabilmek için READ_EXTERNAL_STORAGE iznine gerek duyuyoruz.
Manifestte isteklerimize cevap alabilmek için oluşturduğumuz özel Activity' i intent filter özelliği ile filtreden geçiriyoruz.


           <intent-filter>
               <!-- For recognation our request type-->
              <action android:name="cunoraz.ACTION_PICK" />
              <action android:name="cunoraz.ACTION_MULTIPLE_PICK" />

               <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>

Activity' mizi tek resim seçmek üzere çağırırken

Intent i = new Intent(Action.ACTION_PICK);
startActivityForResult(i, 100);

çoklu resim seçmek için çağırırken
Intent i = new Intent(Action.ACTION_MULTIPLE_PICK);
startActivityForResult(i, 200);

şeklinde kullanmamız yeterli olacaktır. Dönen resimlerin üzerlerine tıklayarak dosya dizinlerini de görebilirsiniz.
Projenin detaylarına buradan ulaşabilirsiniz.
https://github.com/Cutta/MultipleImagePicker
Herkese kolay gelsin.

14 Şubat 2015 Cumartesi

Android FusedLocationApi Kullanımı

    Google' ın cihaz kordinatlarını daha keskin belirleyebilmek üzere sunduğu yeni servisi:  FusedLocationApi. Bu servis GoogleApiClient ile bağlanarak mümkün olan en iyi lokasyon bilgisini veriyor. Örneğe geçecek olursak.

1. Google Play Services indirme ve import etme

FusedLocationApi çalışabilmek için Google Play Services hizmetlerine ihtiyaç duyuyor. Eğer daha önce indirmediysek:

1. SDK Manager sekmesini açın ve  Extras kısmından Google Play services' i indirin.
2. Eclipse' te   File => Import => Android => Existing Android Code Into Workspace 
olunu izleyerek 
android-sdk-windows\extras\google\google_play_services\libproject\google-play-services_lib  dizinindeki projeyi Eclipse' e dahil ediyoruz.
3. Projemizin play services hizmetlerinden faydalanabilmesi için Google Play services' i projemize göstermemiz gerekiyor. Projeye sağ tıklayıp proporties  ardından Android sekmesinde Add.. butonuna tıkladığımızda google-play-services_lib  projesine tıklayıp onaylayarak projemize Google Play hizmetlerini dahil ediyoruz.

Projenin kodlarına bu adresten ulaşabilirsiniz.
https://github.com/Cutta/FusedLocationApi_Example