25 Nisan 2016 Pazartesi

-Özel Tasarım Toast Kullanımı(Android)-

Merhabalar,
Android ile ilgili karşılaştığım  bir soruda "resimli toast" penceresini nasıl oluşturabileceği sorulmuştu.
İlgili soruya istinaden bu makaleyi hazırladım.

Android uygulama geliştirirken arayüz görüntüleme dosyalarını(layout) birçok yerde kullanabiliriz. 
Dolayısıyla kullanıcı ile etkileşimde olan tüm görsel kısım aslında bir layout'dan ibarettir.
Ancak geliştiriciler,belli işlem sonuçlarını kullanıcıya göstermek istediklerinde çoğunlukla standart görsellik araçlar ve apilere başvururlar.
Bunlardan birisi de dialog pencereleridir. Dialog pencereleri standart halde görüntülenebildiği gibi,özel tasarımlara sahip pencereler de oluşturulabilir.
Dolayısıyla tamamen kendi tasarımımızı layout olarak oluşturup görüntüleyebiliriz.
Bu içerikte "Toast" mesaj penceresi konu alınmıştır ve tüm içeriğe aşağıda yer verilmiştir.
Öncelikle mesaj penceresinin görsel kısmını oluşturan bir layout.xml dosyası oluşturmalıyız.

toast_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/toast_layout_id" 
              android:orientation="horizontal" 
              android:layout_width="fill_parent" 
              android:layout_height="fill_parent" 
              android:padding="10dp" 
              android:background="#DAAA" 
              > 
    <ImageView android:id="@+id/image1" 
               android:layout_width="wrap_content" 
               android:layout_height="fill_parent" 
               android:layout_marginRight="10dp" 
               /> 
    <TextView android:id="@+id/text1" 
              android:layout_width="wrap_content" 
              android:layout_height="fill_parent" 
              android:textColor="#FFF" 
              /> 
</LinearLayout>

Java kısmı:

 //layout dosyası çağırabilmemiz için gereken referans tanımı:
 LayoutInflater inflater = getLayoutInflater(); 

 //referans üzerinden oluşturduğumuz layout.xml dosyasına erişiyoruz ve LinearLayout kontrolüne ait id ismini çekiyoruz:
 View layoutToast = inflater.inflate(R.layout.toast_layout,(ViewGroup) findViewById(R.id.toast_layout_id)); 

 //mesaj penceresi üzerinde bir resim dosyası yer alacağı için ilgili kontröle erişiyoruz:
 ImageView image = (ImageView) layoutToast.findViewById(R.id.image1); 
 image.setImageResource(R.drawable.ic_launcher); 

 //mesaj penceresi üzerinde bir TextView kontrolü yer alacağı için ilgili kontrole erişiyoruz:
 TextView text = (TextView) layoutToast.findViewById(R.id.text1);

 //toast penceresi görüntüleme kısmı(mesaj içeriği ve tasarımımıza ait layout kısmını ekliyourz):
 text.setText("Merhaba,Resimli Mesaj Penceresi..."); 
 Toast toast = new Toast(getApplicationContext()); 
 toast.setGravity(Gravity.CENTER_HORIZONTAL, 0, 0); 
 toast.setDuration(Toast.LENGTH_LONG); 
 toast.setView(layoutToast); 
 toast.show();

Uygulama görüntüsü:


Hiç yorum yok:

Yorum Gönder