Merhabalar bu yazımda renk ve değerleri tanımlayarak custom tema nasıl oluşturulduğunu anlatacağım.
İlk önce build içerisine gerekli kütüphaneleri giriyoruz:
build.gradle dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.appcompat:appcompat:1.0.0' implementation 'com.google.android.material:material:1.0.0' }
Sonra resources içerisinde colors.xml dosyasına geliyoruz. Burada temayı oluşturacak renk değerlerini tanımlıyoruz.
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="colorPrimary">#7b4bff</color> <color name="colorPrimaryDark">#6539ba</color> <color name="textColorPrimary">#FFFFFF</color> <color name="windowBackground">#FFFFFF</color> <color name="navigationBarColor">#000000</color> <color name="colorAccent">#FF4081</color> </resources>
Ardından dimens.xml dosyası içerisinde tab boyutlarını tanımlıyoruz.
<resources> <!-- Default screen margins, per the Android Design guidelines. --> <dimen name="activity_horizontal_margin">16dp</dimen> <dimen name="activity_vertical_margin">16dp</dimen> <dimen name="tab_max_width">264dp</dimen> <dimen name="tab_padding_bottom">16dp</dimen> <dimen name="tab_label">14sp</dimen> <dimen name="custom_tab_layout_height">72dp</dimen> </resources>
Renk ve boyutları tanımladık. Şimdi de styles.xml dosyası içerisinde temamızı tanımlıyoruz. İlk önce tüm Android versiyonları için geçerli olacak konfigürasyonu yapıyoruz.
<resources> <style name="MyMaterialTheme" parent="MyMaterialTheme.Base"> </style> <style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="windowNoTitle">true</item> <item name="windowActionBar">false</item> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> </resources>
Daha sonra Android 5.0 ve üstü için ekstra konfigürasyonu yapıyoruz. Bunu res içerisinde values-v21 isminde resource folder’ı oluşturarak içerisinde yeni bir styles.xml dosyası oluşturuyoruz ve içini şu şekilde dolduruyoruz.
<resources> <style name="MyMaterialTheme" parent="MyMaterialTheme.Base"> <item name="android:windowContentTransitions">true</item> <item name="android:windowAllowEnterTransitionOverlap">true</item> <item name="android:windowAllowReturnTransitionOverlap">true</item> <item name="android:windowSharedElementEnterTransition">@android:transition/move</item> <item name="android:windowSharedElementExitTransition">@android:transition/move</item> </style> </resources>
Artık uygulayı emülatörde çalıştırıp temanızın görüntüsünü kontrol edebilirsiniz.