Merhaba Arkadaşlar,
Mobilhanem.com sitemiz üzerinden anlattığımız/yayınladığımız Android Eğitimleri yazı serimizde bu dersimizde Android Resources Dosyaları ile devam ediyoruz.
Android Resources Dosyaları, uygulamalarımızı geliştirmek için bize yardımcı olan; aşağıda yer alan ana dosyalardan oluşmaktadır. Örnek verecek olursak; ekran boyutuna bağlı olarak farklı bir UI düzeni veya dil ayarına bağlı olarak farklı dizeler sunmayı buradaki klasörler sayesinde sağlarız. Ayrıca istediğimiz animasyonları oluşturup kullanabilir, istediğimiz tasarımları oluşturabiliriz. Aşağıda yer aldığı gibi çeşitli android resources dosyaları bulunmaktadır.
- drawable
- layout
- mipmap
- values
- anim
- raw
- xml
anim
Android Resources tiplerinden olan anim klasörü; uygulamalarımızda kullanmak istediğimiz animasyon yapılarını oluşturduğumuz android resources dosyaların dan anim klasörüdür.
dosya örneği : res/anim/fade_out.xml
fade_out.xml
<set xmlns:android="http://schemas.android.com/apk/res/android"> <alpha android:duration="@android:integer/config_mediumAnimTime" android:fromAlpha="1.0" android:toAlpha="0.0"/> </set>
kotlin kodu:
val animation = AnimationUtils.loadAnimation(this, R.anim.fade_out)
java kodu:
Animation animation = AnimationUtils.loadAnimation(this, R.anim.fade_out);
drawable
Çeşitli bitmap dosyalarını ( .png, .jpg, .gif ) uzantılı ve çeşitli xml dosyalarını konumlandırdığımız yerdir. Farklı ekran boyutlarına göre kullanacağımız resimlerin aşağıdaki gibi klasörleme mantığı vardır.
/drawable-ldpi : düşük density ekranlar için
/drawable-mdpi : orta density ekranlar için
/drawable-hdpi : yüksek density ekranlar için
/drawable-xhdpi : ekstra yüksek density ekranlar için
/drawable-xxhdpi ekstra-ekstra yüksek density ekranlar için
/drawable-xxxhdpi ekstra-ekstra-ekstra yüksek density ekranlar için
layout örneği:
<ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/example_img" />
kotlin kodu:
val drawable: Drawable? = ResourcesCompat.getDrawable(resources, R.drawable.example_img, null)
java kodu:
Resources res = getResources(); Drawable drawable = ResourcesCompat.getDrawable(res, R.drawable.myimage, null);
layout
Kullanıcı arayüzü düzenini tanımladığımız ve xml uzantılı yapıların tanımlandığı yerdir.
dosya örneği : res/layout/main_activity.xml
yukarıda dosya yolunu gösterdiğimiz main_activity.xml layout u aşağıdaki şekilde R.layout yardımı ile erişiriz.
kotlin kodu:
public override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.main_activity) }
java kodu:
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); }
values
Android Resources tiplerinden olan values klasörü; dil, renk ve tema dosyalarını barındıran yerdir. Default olarak üç values dosyası içermektedir. Detaylı anlatım için bu dersimizi inceleyebilirsiniz.
- colors.xml
- strings.xml
- styles.xml
raw
Android Resources tiplerinden olan raw klasörü; genellikle ses ve video gibi dosyalarının yer aldığı yerdir.
kotlin kodu:
val videoURI = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.denemevideo)
java kodu:
Uri videoURI = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.denemevideo);
mipmap
Uygulamamızın başlatıcı simgelerini ( ana ekranda gösterilen uygulama iconu ) konumlandırmamız için kullanılır.
<application android:icon="@mipmap/app_icon" android:label="@string/app_name" > .... </application>
xml
xml şeklinde önceden konumlandırma yapmak istediğimiz değerleri barındırır. örneğin tab yapısı kullanıyorsunuz ve o tabların ismi, iconu ve çeşitli özellikleri mevcut diyelim ki <tabs> xml yapısını kullanarak bu klasörde konumlandırıp kolaylıkla kullanabilirsiniz.
menu
Android Resources tiplerinden olan menu klasörü ; adından da anlaşılacağı gibi menu içerisinde yer alması gereken değerlerin tutulduğu yerdir.
dosya örneği : res/menu/example_menu.xml
example_menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/item1" android:title="@string/item1" android:icon="@drawable/group_item1_icon" app:showAsAction="ifRoom|withText"/> <group android:id="@+id/group"> <item android:id="@+id/group_item1" android:onClick="onGroupItemClick" android:title="@string/group_item1" android:icon="@drawable/group_item1_icon" /> <item android:id="@+id/group_item2" android:onClick="onGroupItemClick" android:title="@string/group_item2" android:icon="@drawable/group_item2_icon" /> </group> <item android:id="@+id/submenu" android:title="@string/submenu_title" app:showAsAction="ifRoom|withText" > <menu> <item android:id="@+id/submenu_item1" android:title="@string/submenu_item1" /> </menu> </item> </menu>
kotlin kodu:
override fun onCreateOptionsMenu(menu: Menu): Boolean { menuInflater.inflate(R.menu.example_menu, menu) return true }
java kodu:
@Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.game_menu, menu); return true; }
font
Uygulamamızda kullandığımız yazı tipleri için fontların tutulduğu yerdir. Bu fontların uzantıları .ttf, .otf, .ttc olabilir.
dosya örneği : res/font/font_name.xml
font_name.xml
<font-family xmlns:android="http://schemas.android.com/apk/res/android"> <font android:fontStyle="normal" android:fontWeight="400" android:font="@font/lobster_regular" /> <font android:fontStyle="italic" android:fontWeight="400" android:font="@font/lobster_italic" /> </font-family>
layout kullanımı:
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="@font/font_name"/>
Font kullanımı ile ilgili detaylı derslerimize göz atmak isterseniz bu linkleri inceleyebilirsiniz. font kullanımı ve indirilebilir font kullanımı.
Evet arkadaşlar Android Resources Dosyalarını sizlere detaylıca anlatmaya çalıştım. Umarım hepiniz için faydalı olmuştur. Temel olarak resources yapılarının ne işe yaradığını anlattım. her bir resources konusuna ilerleyen derslerde detaylıca yer vereceğiz.
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..
10
devamı olmayacak mı acaba
Devamı gelecek. Genel olarak her hafta 1 ders yayınlamaya çalışıyoruz.