Uyarlanabilir simgeler

Uyarlanabilir simgeler veya AdaptiveIconDrawable, cihaz özelliklerine ve kullanıcı temalarına bağlı olarak farklı şekillerde görüntülenebilir. Uyarlanabilir simgeler öncelikli olarak ana ekrandaki başlatıcı tarafından kullanılır, ancak kısayollarda, Ayarlar uygulamasında, paylaşım iletişim kutularında ve genel bakış ekranında da kullanılabilir. Uyarlanabilir simgeler, tüm Android form faktörlerinde kullanılır.

Bit eşlem görüntülerinin aksine, uyarlanabilir simgeler farklı kullanım alanlarına uyarlanabilir:

  • Farklı şekiller: Uyarlanabilir simgeler farklı cihaz modellerinde çeşitli şekiller gösterebilir. Örneğin, bir OEM cihazında dairesel bir şekil, başka bir cihazda ise bir dairesel şekil (kare ile daire arasındaki bir şekil) görüntüleyebilir. Her cihaz OEM'sinin bir maske sağlaması gerekir. Maske, sistem tarafından tüm uyarlanabilir simgeleri aynı şekilde oluşturmak için kullanılır.

    Kullanılan maskeye bağlı olarak farklı şekiller gösteren (bir daire ve ardından iki farklı tür yuvarlak) aynı örnek Android simgesinin tekrarlanan
animasyonunu gösteren bir GIF
    Şekil 1. Uyarlanabilir simgeler, cihazdan cihaza değişen çeşitli maskeleri destekler.
  • Görsel efektler: Uyarlanabilir simgeler, kullanıcılar simgeyi ana ekrana yerleştirdiğinde veya taşıdığında görüntülenen çeşitli ilgi çekici görsel efektleri destekler.

    Kullanıcı yanıtını gösteren animasyonla, daire şeklinde iki Android örnek simgesinin
örneklerini gösteren bir gif. İlk simgede, önce sola sonra sağa, sonra da daire içinde yukarı aşağı sallanan Android logosu gösteriliyor. İkinci simge genişleyip tekrar daralır.
    Şekil 2. Uyarlanabilir simgeyle gösterilen görsel efekt örnekleri.
  • Kullanıcı teması: Android 13'ten (API düzeyi 33) itibaren kullanıcılar uyarlanabilir simgelerini temaya uygun hale getirebilirler. Kullanıcı, temalı uygulama simgelerini etkinleştirirse sistem ayarlarındaki Temalı simgeler açma/kapatma düğmesi açık olduğunda ve başlatıcı bu özelliği destekliyorsa sistem, ton rengini belirlemek için kullanıcının seçtiği duvar kağıdının ve temanın rengesini kullanır.

    Her biri farklı tonlarla farklı bir kullanıcı teması içeren üç Android cihaz örneğini gösteren resim: İlkinde koyu tonlamalı bir duvar kağıdı, ikincisinde ise altın renkli duvar kağıdı, üçüncüsünde ise mavi tonlu duvar kağıdına sahip açık gri bir duvar kağıdı gösterilmektedir. Her örnekte simgeler duvar kağıdının tonunu devralmıştır ve mükemmel bir şekilde karışmıştır.
    Şekil 3. Kullanıcının duvar kağıdı ve temalarından ayarlanabilir simgeler.

    Aşağıdaki senaryolarda ana ekranda temalı uygulama simgesi görüntülenmez; bunun yerine uyarlanabilir veya standart uygulama simgesi görüntülenir:

    • Kullanıcı, temalı uygulama simgelerini etkinleştirmediğinde.
    • Uygulamanız tek renkli uygulama simgesi sağlamıyorsa.
    • Başlatıcı, temalı uygulama simgelerini desteklemiyorsa.

Uyarlanabilir simgeler tasarlayın

Uyarlanabilir simgenizin farklı şekilleri, görsel efektleri ve kullanıcı temalarını desteklediğinden emin olmak için tasarımın aşağıdaki gereksinimleri karşılaması gerekir:

  • Simgenin renkli versiyonu için biri ön plan, diğeri arka plan olmak üzere iki katman sağlamanız gerekir. Katmanlar, vektör veya bit eşlem olabilir ancak vektörler tercih edilir.

    Ön plan katmanı (sol resim) ve arka plan katmanı (sağ resim) örneğini gösteren resim. Ön planda, 66x66 boyutundaki bir güvenli bölgenin ortasında 16 kenarlı örnek Android logosu simgesi gösterilmektedir. Güvenli bölge, 108x108 boyutundaki bir kapsayıcının içinde ortalanmıştır. Arka planda, güvenli bölge ve kapsayıcı için ölçülen aynı boyutlar gösterilir, ancak yalnızca mavi bir arka plan bulunur ve logo gösterilmez.
    Şekil 4. Ön ve arka plan katmanları kullanılarak tanımlanan uyarlanabilir simgeler. Gösterilen 66x66 boyutundaki güvenli alt bölge, OEM tarafından tanımlanan şekilli bir maske ile hiçbir zaman kırpılmayan alandır.
    Yuvarlak maske üzerine yerleştirilmiş, önceki resimde yer alan simgeyi gösteren resim.
    Şekil 5. Ön plan ve arka plan katmanlarının yuvarlak maskeyle birlikte nasıl göründüğünü gösteren örnek.
  • Uygulama simgelerinde kullanıcı temalarını desteklemek istiyorsanız simgenin tek renkli sürümü için tek bir katman sağlayın.

    Tek renkli simge katmanı (sol resim) ve renk önizlemeleri (sağ resim) örneğini gösteren resim. Tek renkli katmanda, 66x66 boyutundaki bir güvenli bölgenin ortasındaki örnek bir Android logosunun 16 kenarlı simgesi gösterilmektedir. Güvenli bölge, 108x108 boyutundaki bir container'ın içinde ortalanmıştır. Renk önizlemeleri, bu katman görüntüsünü farklı renkteki kullanıcı temalarına (turuncu, pembe, sarı ve yeşil) uygulandığında gösterir.
    Şekil 6. Renk önizlemeleri (sağ) örneklerinin bulunduğu tek renkli simge katmanı (solda).
  • Tüm katmanları 108x108 dp olarak boyutlandırın.

  • Net kenarlara sahip simgeler kullanın. Katmanlar, simgenin dış çizgisinin etrafında maske veya arka plan gölgesi içermemelidir.

  • En az 48x48 dp boyutunda bir logo kullanın. Simgenin iç 66x66 dp'si maskelenmiş görüntü alanında göründüğünden, 66x66 dp'yi aşmamalıdır.

Katmanların dört tarafının her birindeki dış 18 dp, maskeleme ve paralaks ya da yanıp sönme gibi görsel efektler oluşturmak için ayrılmıştır.

Android Studio'yu kullanarak uyarlanabilir simge oluşturmayı öğrenmek için Android Uygulama simgesi Figma şablonumuza veya başlatıcı simgeleri oluşturmak için Android Studio dokümanlarımıza bakın. Ayrıca Tasarım, Uyarlamalı Simgeler blog yayınına da göz atın.

Uyarlanabilir simgenizi uygulamanıza ekleyin

Uyarlanabilir olmayan simgeler gibi uyarlanabilir simgeler, uygulama manifestindeki android:icon özelliği kullanılarak belirtilir.

İsteğe bağlı bir özellik olan android:roundIcon, dairesel simgelere sahip uygulamaları temsil eden başlatıcılar tarafından kullanılır ve uygulamanızın simgesi, tasarımının temel bir parçası olarak dairesel bir arka plan içeriyorsa yararlı olabilir. Bu tür başlatıcıların, android:roundIcon öğesine yuvarlak maske uygulayarak uygulama simgeleri oluşturması gerekir. Bu garanti, örneğin logoyu biraz büyüterek ve kırpıldığında dairesel arka planın tüm alanı kapladığından emin olarak uygulama simgenizin görünümünü optimize etmenizi sağlayabilir.

Aşağıdaki kod snippet'inde bu özelliklerin ikisi de gösterilmektedir ancak çoğu uygulama yalnızca android:icon değerini belirtir:

<application
    ...
    android:icon="@mipmap/ic_launcher"
    android:roundIcon="@mipmap/ic_launcher_round"
    ...>
</application>

Daha sonra, uyarlanabilir simgenizi res/mipmap-anydpi-v26/ic_launcher.xml adresine kaydedin. Simgeleriniz için ön plan, arka plan ve tek renkli katman kaynaklarını tanımlamak üzere <adaptive-icon> öğesini kullanın. <foreground>, <background> ve <monochrome> iç öğeleri hem vektör hem de bit eşlem resimleri destekler.

Aşağıdaki örnekte, <adaptive-icon> içinde <foreground>, <background> ve <monochrome> öğelerinin nasıl tanımlanacağı gösterilmektedir:

<?xml version="1.0" encoding="utf-8"?>
...
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
    <background android:drawable="@drawable/ic_launcher_background" />
    <foreground android:drawable="@drawable/ic_launcher_foreground" />

    // Starting with Android 13 (API level 33), you can opt-in to providing a
    // <monochrome> drawable.
    <monochrome android:drawable="@drawable/ic_launcher_monochrome" />
</adaptive-icon>
...

Çekilebilir öğeleri <foreground>, <background> ve <monochrome> öğelerinin içinde satır içi olarak da tanımlayabilirsiniz. Aşağıdaki snippet'te bunu ön plan çekilebilir özelliğiyle yapmaya ilişkin bir örnek gösterilmektedir.

<?xml version="1.0" encoding="utf-8"?>
...
<foreground>
   <inset
       android:insetBottom="18dp"
       android:insetLeft="18dp"
       android:insetRight="18dp"
       android:insetTop="18dp">
       <shape android:shape="oval">
           <solid android:color="#0000FF" />
       </shape>
   </inset>
</foreground>
...

Kısayollarınıza normal uyarlanabilir simgelerle aynı maske ve görsel efekti uygulamak istiyorsanız aşağıdaki tekniklerden birini kullanın:

  • Statik kısayollar için <adaptive-icon> öğesini kullanın.
  • Dinamik kısayolları oluştururken ise createWithAdaptiveBitmap() yöntemini çağırın.

Uyarlanabilir simgeleri uygulama hakkında daha fazla bilgi için Uyarlanabilir Simgeleri Uygulama bölümüne bakın. Kısayollar hakkında daha fazla bilgi için Uygulama kısayollarına genel bakış başlıklı makaleyi inceleyin.

Ek kaynaklar

Uyarlanabilir simgeleri tasarlama ve uygulama hakkında daha fazla bilgi için aşağıdaki kaynaklara bakın.