Android custom tema oluşturma

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.