Merhaba Arkadaşlar,
Mobilhanem.com sitemiz üzerinden anlattığımız/yayınladığımız Android Eğitimleri yazı serimizde bu dersimizde Android Values Dosyaları ile devam ediyoruz.
Values dosyaları, uygulamalarımızda kullanılan sabit değeleri bulundurduğumuz dosyalardır. Örnek verecek olursak uygulama adımız, bir values dosyası olan strings.xml‘de tutulur.
Saklanan veriler anahtar-değer mantığıyla saklanır, layout dosyaları içerisinden veya Activity’ler içerisinden farklı metotlar yardımıyla çağırılabilir.
Bir Android Projesi oluşturduğumuzda default olarak şu 3 values dosyası oluşturulur:
-Colors.xml
-Strings.xml
-Styles.xml
Colors. xml
Uygulama içerisinde kullanmak istediğmiz renklerin, hexadecimal şekilde saklandığı values dosyasıdır.
Örnek içerik:
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="colorPrimary">#008577</color> <color name="colorPrimaryDark">#00574B</color> <color name="colorAccent">#D81B60</color> </resources>
Layout içerisinde kullanımı:
Burada, oluşturduğumuz textview’ın yazı rengini, colors.xml içerisindeki colorPrimaryDark olarak verdik.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:textColor="@color/colorPrimaryDark" android:text="TextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textView" /> </LinearLayout>
Kod içerisinde kullanımı:
ContextCompat.getColor(context, R.color.colorPrimaryDark)
ContextCompat.getColor(context, R.color.colorPrimaryDark);
Strings.xml
Adı üzerinde, uygulama içerisinde kullanacağınız stringlerin saklandığı xml dosyasıdır. Burada önemli olan nokta(bir sonraki derste anlatacağız) uygulamanıza birden fazla dil desteği (ingilizce, fransızca vb.) eklemek istiyorsanız, her yabancı dil için bir strings.xml dosyası oluşturmamız gerekecektir.
Örnek içerik
<resources> <string name="app_name">Mobilhanem Values Application</string> <string name="uyari_mesaji">Mobihanem Test Uyarı Mesajı!!</string> </resources>
Layout içerisinde kullanımı:
Burada, oluşturduğumuz uyarı mesajını, textview’ın text’ine vereceğiz.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:textColor="@color/colorPrimaryDark" android:text="@string/uyari_mesaji" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textView" /> </LinearLayout>
Kod içerisinde kullanımı:
val toast = Toast.makeText(applicationContext, R.string.uyari_mesaji, Toast.LENGTH_SHORT) toast.show()
Toast.makeText(getApplicationContext(),R.string.uyari_mesaji,Toast.LENGTH_LONG).show();
Styles.xml: Uygulamada kullanılan temaları ve stilleri belirlediğimiz dosyadır.
Örnek içerik:
<resources> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> </resources>
Yukarıda bahsettiğimiz default dosyalar dışında, values klasörünün altında;
-Bool,
-Dimension,
-Integer,
-Integer Array,
-Typed Array tipinde XML dosyaları oluşturabilirsiniz.
Bool
XML’de tanımlanan BOOL değerlerini tutar.
Dosya konumu : res/values/bool_dosya_adi.xml.
Örnek içerik :
<?xml version="1.0" encoding="utf-8"?> <resources> <boolname="deneme-mesaji-gosterilsin-mi">true</bool> </resources>
Kod içerisinde kullanımı:
val denemeMesajiGosterilsinMi: Boolean = resources.getBoolean(R.bool.deneme-mesaji-gosterilsin-mi)
Resources res = getResources(); boolean denemeMesajiGosterilsinMi = res.getBoolean(R.bool.deneme-mesaji-gosterilsin-mi);
Dimension
Boyut değerlerinin saklandığı XML dosyasıdır. Boyut ve ölçü birimi olarak değerler barındırabilir. Örneğin: 10px, 2in,5dp.
Dosya konumu : res/values/dimesion_dosya_adi.xml.
<?xml version="1.0" encoding="utf-8"?> <resources> <dimen name="imageview_yukseklik">25dp</dimen> <dimen name="imageview_genislik">150dp</dimen> <dimen name="font_boyutu">16sp</dimen> </resources>
Kod içerisinde kullanımı:
val fontSize: Float = resources.getDimension(R.dimen.font_boyutu)
Resources res = getResources(); float fontSize = res.getDimension(R.dimen.font_boyutu);
Layout dosyalarında kullanımı:
<ImageView android:layout_height="@dimen/imageview_yukseklik" android:layout_width="@dimen/imageview_genislik" />
Integer
Uygulama içerisinde kullanılacak sabit integer değerleri saklamak için kullanılır. Örneğin KDV değerlerini tutmak istediğimizi düşünelim. Temel gıda %8 ve basılı yayınlar %18 olarak belirleyelim
Dosya yolu: res/values/integers.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <integer name="temel_gida_kdv_orani">8</integer> <integer name="basili_yayin_kdv_orani">18</integer> </resources>
Kod içerisinde kullanımı:
val temelGida: Int = resources.getInteger(R.integer.temel_gida_kdv_orani) val basiliYayin: Int = resources.getInteger(R.integer.basili_yayin_kdv_orani)
Resources res = getResources(); int temelGida = res.getInteger(R.integer.temel_gida_kdv_orani); int basiliYayin = res.getInteger(R.integer.basili_yayin_kdv_orani);
Integer Array
Uygulama içerisinde kullanılacak sabit integer değerleri barındıran dizileri saklamak için kullanırız. İkinin katlarını sakladığımız küçük bir dizi düşülenlim:
Dosya yolu: res/values/integers_array.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <integer-array name="ikinin_katlari"> <item>2</item> <item>4</item> <item>8</item> <item>16</item> </integer-array> </resources>
Kod içerisinde kullanımı:
val ikininKatlari: IntArray = resources.getIntArray(R.array.ikinin_katlari)
Resources res = getResources(); int[] ikininKatlari = res.getIntArray(R.array.ikinin_katlari);
Typed Array
Birden fazla tipte sabit değer saklayabileceğiniz XML dosyasıdır. Örneğin ; renkler ve iconları içeren bir dosya düşünelim.
Dosya yolu: res/values/arrays.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <array name="icons"> <item>@drawable/home</item> <item>@drawable/settings</item> <item>@drawable/logout</item> </array> <array name="colors"> <item>#FFFF0000</item> <item>#FF00FF00</item> <item>#FF0000FF</item> </array> </resources>
Kod içerisinde kullanımı:
val icons: TypedArray = resources.obtainTypedArray(R.array.icons) val drawable: Drawable = icons.getDrawable(0) val colors: TypedArray = resources.obtainTypedArray(R.array.colors) val color: Int = colors.getColor(0,0)
Resources res = getResources(); TypedArray icons = res.obtainTypedArray(R.array.icons); Drawable drawable = icons.getDrawable(0); TypedArray colors = res.obtainTypedArray(R.array.colors); int color = colors.getColor(0,0);
Evet arkadaşlar Android Values Dosyalarını sizlere detaylıca anlatmaya çalıştım. Umarım hepiniz için faydalı olmuştur.
Sıfırdan android dersleri için tıklayınız.
Mobilhanem.com üzerinden anlattığımız android uygulama geliştirme derslerine devam edeceğiz. Konu hakkında sorunuzu yorum alanından sorabilirsiniz. Konu dışı sorularınızı ve tüm yazılımsal sorularınızı sorucevap.mobilhanem.com sitemizden de sorabilirsiniz.
Bir daha ki dersimizde görüşmek dileğiyle..
36