TV ekranları genellikle 3 metre uzaktan görüntülenir ve diğer Android cihazların çoğundan çok daha büyük olsa da, TV ekranları daha küçük bir cihaz ekranıyla aynı düzeyde ayrıntı ve renk sağlamaz. Bu faktörler, faydalı ve keyifli bir kullanıcı deneyimi sunmak için TV cihazlarını göz önünde bulundurarak uygulama düzenleri oluşturmanızı gerektirir.
Bu kılavuzda, TV uygulamaları için etkili düzenler oluşturmak için minimum gereksinimler ve uygulama ayrıntıları açıklanmaktadır.
Daha fazla bilgi için TV için tasarlama konusunu okuyun.
TV için düzen temaları kullan
Android temaları, TV uygulamalarınızdaki düzenler için temel sağlayabilir. TV cihazında çalışması amaçlanan uygulama etkinliklerinizin görünümünü değiştirmek için bir tema kullanın. Bu bölümde hangi temaların kullanılacağı açıklanmaktadır.
Leanback teması
Leanback androidx kitaplığı, TV etkinlikleri için tutarlı bir görsel stil teması olan Theme.Leanback
temasını içerir. Bu temayı AndroidX Leanback sınıflarıyla oluşturulan tüm TV uygulamaları için kullanmanızı öneririz. Aşağıdaki kod örneğinde bu temanın bir etkinliğe nasıl uygulanacağı gösterilmektedir:
<activity android:name="com.example.android.TvActivity" android:label="@string/app_name" android:theme="@style/Theme.Leanback">
Başlık Çubuğu teması yok
Başlık çubuğu, telefonlar ve tabletlerdeki Android uygulamaları için standart bir kullanıcı arayüzü öğesidir ancak TV uygulamaları için uygun değildir. AndroidX Leanback sınıflarını kullanmıyorsanız başlık çubuğunun görüntülenmesini önlemek için TV etkinliklerinize NoTitleBar
temasını uygulayın. TV uygulama manifestinden alınan aşağıdaki kod örneğinde, başlık çubuğu görünümünü kaldırmak için bu temanın nasıl uygulanacağı gösterilmektedir:
<application> ... <activity android:name="com.example.android.TvActivity" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar"> ... </activity> </application>
AppCompat temaları
Android mobil uygulamalarında, Theme.AppCompat
temalarından biriyle birlikte AppCompatActivity
kullanımı çok yaygındır. Bu kombinasyon, cihazda çalışan Android sürümü konusunda endişelenmeden çekilebilir renklendirme gibi özellikleri kullanmanıza olanak tanır. Yalnızca Android TV'de çalışan bir uygulama geliştiriyorsanız AppCompatActivity
uygulamasını kullanmanıza gerek yoktur. Çünkü bu uygulamanın etkinleştirdiği özellikler zaten Android TV'de mevcuttur veya alakasızdır.
Android mobil ile Android TV arasında ortak bir kod tabanına sahip bir uygulama oluşturuyorsanız temadan dolayı bazı zorluklarla karşılaşabilirsiniz. AppCompatActivity
ve çeşitli AppCompat
widget'ları Theme.AppCompat
kullanmanızı gerektirirken Leanback parçaları için FragmentActivity
ve Theme.Leanback
kullanmanız gerekir.
Android mobil ve Android TV için aynı temel etkinliği kullanmanız gerekiyorsa veya
AppCompatImageView
gibi AppCompat
widget'larına dayalı özel görünümleri
kullanmak istiyorsanız Theme.AppCompat.Leanback
temalarını kullanın. Bu temalar hem AppCompat
temasını hem de Leanback'e özgü değerleri sağlar.
Theme.AppCompat.Leanback
temalarını, diğer herhangi bir temada olduğu gibi özelleştirebilirsiniz. Örneğin, Leanback'in OnboardingSupportFragment
öğesine özgü değerleri değiştirmek istiyorsanız aşağıdakine benzer bir işlem yapın:
<style name="MyOnboarding" parent="Theme.AppCompat.Leanback.Onboarding"> <item name="onboardingLogoStyle">@style/MyOnboardingLogoStyle</item> <item name="onboardingPageIndicatorStyle">@style/MyOnboardingPageIndicatorStyle</item> </style>
Temel TV düzenleri oluşturma
TV cihazlarının düzenleri, büyük ekranlarda kullanılabilir ve etkili olduklarından emin olmak için bazı temel yönergelere uymalıdır. TV ekranları için optimize edilmiş düzenler oluşturmak için aşağıdaki ipuçlarını uygulayın:
- Yatay yönde düzenler oluşturun. TV ekranları her zaman yatay modda görüntülenir.
- Ekrandaki gezinme denetimlerini ekranın sol veya sağ tarafına yerleştirin ve içerik için dikey alandan tasarruf edin.
- Parçalar kullanarak bölümlere ayrılmış kullanıcı arayüzleri oluşturun. Yatay ekran alanından daha iyi yararlanmak için
ListView
yerineGridView
gibi görüntüleme gruplarını kullanın. - Görünümleri düzenlemek için
RelativeLayout
veyaLinearLayout
gibi görünüm gruplarını kullanın. Bu yaklaşım sayesinde sistem, görüntülerin konumunu TV ekranının boyutuna, hizalamasına, en boy oranına ve piksel yoğunluğuna göre ayarlayabilir. - Kullanıcı arayüzünün dağınık olmasını önlemek için düzen kontrolleri arasına yeterli kenar boşluğu ekleyin.
Fazla tarama
TV standartlarındaki evrim ve izleyicilere her zaman tam ekran resim sunma isteği nedeniyle, TV için Layouts bazı benzersiz gereksinimlere sahiptir. Bu nedenle, TV cihazları tüm ekranı doldurmak için bir uygulama düzeninin dış kenarını kırpabilir. Bu davranış genellikle fazla tarama olarak adlandırılır.
Ekran öğelerini, fazla tarama güvenli alanı içinde her zaman kullanıcı tarafından görülebilecek şekilde konumlandırın. Bir düzene sol ve sağ kenarlarda% 5 48 dp, üst ve alt kenarlarda 27 dp'lik bir kenar boşluğu eklemek, düzendeki ekran öğelerinin fazla tarama güvenli alan içinde olmasını sağlamaya yardımcı olur.
Kullanıcının doğrudan etkileşimde bulunmadığı arka plan ekranı öğelerini ayarlamayın veya fazla tarama güvenli alanına kırpmayın. Bu yaklaşım, arka plan ekranı öğelerinin tüm ekranlarda doğru görünmesini sağlar.
Aşağıdaki örnekte, arka plan öğeleri içerebilen ve% 5'lik bir kenar boşluğuna sahip olan ve taşma güvenli alanı içinde öğeler içerebilen iç içe yerleştirilmiş bir alt düzen bulunabilen bir kök düzeni gösterilmektedir:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <!-- Screen elements that can render outside the overscan safe area go here --> <!-- Nested RelativeLayout with overscan-safe margin --> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="27dp" android:layout_marginBottom="27dp" android:layout_marginLeft="48dp" android:layout_marginRight="48dp"> <!-- Screen elements that need to be within the overscan safe area go here --> </RelativeLayout> </RelativeLayout>
Dikkat: BrowseFragment
gibi AndroidX Leanback sınıflarını veya ilgili widget'ları kullanıyorsanız düzeninize fazla tarama kenar boşlukları uygulamayın. Bu düzenler zaten fazla tarama güvenli kenar boşlukları içerir.
Kullanılabilir metinler ve denetimler oluşturun
TV uygulamanızdaki metin ve kontrollerin uzaktan görülmesini daha kolay hale getirmek için aşağıdaki ipuçlarını uygulayın:
- Metni, kullanıcıların kolayca tarayabilmeleri için küçük parçalara ayırın.
- Koyu renkli arka plan üzerinde açık renkli metin kullanın. Bu tarz, TV'de daha kolay okunur.
- Hafif yazı tiplerinden veya hem çok dar hem de çok geniş çizgileri olan yazı tiplerinden kaçının. Okunabilirliği artırmak için basit sans-serif yazı tiplerini ve yumuşatma özelliğini kullanın.
- Android'in standart yazı tipi boyutlarını kullanın:
<TextView android:id="@+id/atext" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_vertical" android:singleLine="true" android:textAppearance="?android:attr/textAppearanceMedium"/>
- Tüm görünüm widget'larınızı ekrandan 3 metre uzakta oturan bir kişinin açıkça görebileceği kadar büyük yapın. Bunu yapmanın en iyi yolu, mutlak boyutlandırma yerine düzene bağlı boyutlandırma, mutlak piksel birimleri yerine ise yoğunluktan bağımsız piksel (dp) birimlerini kullanmaktır. Örneğin, bir widget'ın genişliğini ayarlamak için piksel ölçümü yerine
wrap_content
, widget'ın kenar boşluğunu ayarlamak için de px değerleri yerine dp değerleri kullanın.
Yoğunluktan bağımsız pikseller ve daha büyük ekran boyutlarına uygun bina düzenleri hakkında daha fazla bilgi için Ekran uyumluluğuna genel bakış bölümüne bakın.
TV için düzen kaynaklarını yönetme
Diğer tüm Android cihazlarda olduğu gibi TV'ler de farklı ekran boyutlarına sahiptir ve 720p, 1080p ve 4K dahil ancak bunlarla sınırlı olmamak üzere farklı çözünürlükleri destekler. Uygulamanızın farklı ekran boyutlarını desteklediğinden emin olun.
Farklı ekran boyutları ve çözünürlükleri, farklı piksel yoğunluklarına sahiptir. Kullanıcı arayüzünüzün farklı ekran boyutları, çözünürlük ve piksel yoğunluklarındaki görünümünü korumak için, kullanıcı arayüzü ölçümlerini pikseller yerine yoğunluktan bağımsız pikseller (dp) kullanarak tanımlayın. Farklı TV paneli çözünürlükleri için ekran piksel yoğunluğu aşağıda özetlenmiştir.
Panel çözünürlüğü | Ekran piksel yoğunluğu |
---|---|
720p | tvdpi |
1080 | xhdpi |
4K | xxxhdpi |
Büyük ekranlara ilişkin düzenleri ve kaynakları optimize etme hakkında daha fazla bilgi için Ekran uyumluluğuna genel bakış bölümüne bakın.
Kaçınılması gereken düzen kalıpları
TV cihazlarında iyi çalışmayan düzenler oluşturmaya yönelik birkaç yaklaşım vardır. TV için düzen geliştirirken kaçınılması gereken bazı kullanıcı arayüzü yaklaşımlarını aşağıda bulabilirsiniz.
- Telefon veya tablet düzenlerini yeniden kullanma: Bir telefon ya da tablet uygulamasındaki düzenleri değiştirmeden yeniden kullanmayın. Diğer Android cihaz form faktörleri için oluşturulan düzenler, TV cihazları için uygun değildir ve TV'de çalışacak şekilde basitleştirilmesi gerekir.
ActionBar
kullanımı: İşlem çubuklarının telefon ve tabletlerde kullanılması önerilse de TV arayüzü için uygun değildir. Uzaktan kumandayla bu tür bir menüde gezinmenin zorluğu nedeniyle, TV uygulamalarında işlem çubuğu seçenekler menüsü veya herhangi bir açılır menü kullanılması kesinlikle önerilmez.ViewPager
kullanımı: Ekranlar arasında kaydırma özelliği telefonda veya tablette iyi sonuç verebilir. Ancak bunu TV'de denemeyin.
TV'ye uygun düzenler tasarlama hakkında daha fazla bilgi için TV tasarımı kılavuzuna bakın.
Büyük bit eşlemleri işleme
TV cihazları da diğer Android cihazlarda olduğu gibi sınırlı bellek miktarlarına sahiptir. Uygulama düzeninizi çok yüksek çözünürlüklü görüntülerle derlerseniz veya uygulamanızı çalışırken çok sayıda yüksek çözünürlüklü resim kullanırsanız bellek kısa sürede bellek sınırlarına takılabilir ve bellek hatalarına neden olabilir. Çoğu durumda uygulamanızda bit eşlemleri getirmek, kodunu çözmek ve görüntülemek için Glide kitaplığını kullanmanızı öneririz. Bit eşlemlerle çalışırken en iyi performansı elde etme hakkında daha fazla bilgi için genel Android grafikleri ile ilgili en iyi uygulamalarımıza bakın.
Etkili reklamcılık sağlama
Oturma odası ortamı için, tam ekran olan ve 30 saniye içinde kapatılabilen video reklam çözümlerini kullanmanızı öneririz. Kapatma düğmeleri ve tıklamalar gibi Android TV'de reklam yayınlama işlevleri, dokunma yerine D-pad ile erişilebilir olmalıdır.
Android TV web tarayıcısı sağlamaz. Reklamlarınız, Android TV cihazları için onaylanmamış bir web tarayıcısı başlatmaya veya Google Play Store içeriğine yönlendirmeye çalışmamalıdır.
Not: WebView
sınıfını sosyal medya hizmetlerine giriş yapmak için kullanabilirsiniz.