2015-01-16 9 views
6

1080p ve 720p android TV için farklı boyut değerlerini tanımlamak için kullanmam gereken niteleyiciye karar vermem gerekiyor. Değerler-sw1080p, değerler-sw720p gibi bir şey kullanmaya çalıştığımda, işe yaramıyor. Dimes.xml'deki değerler hiçbir şeyi etkilemez. Ama -sw540dp, -sw360dp gibi niteleyici kullanıyorum eğer çalışır. Bunun neden böyle olduğunu anlamıyorum. Herhangi bir fikir? Teşekkürler.1080p, 720p android TV'yi desteklemek için hangi kaynak niteleyiciyi kullanmalıyım? - Android

+0

gösterim cihazı gerçek genişliği 1920 piksel ve 1080 piksel var demektir doğal çözünürlük formatındaki 1080p sinyalleri kabul etme yeteneği anlamına gelir i n yükseklik, –

+0

Burada "sw" nin "Ekran Genişliği" ni temsil ettiği sw-7080p olarak. –

+0

En azından televizyonlar için farklı olan şeyleri kullanmayın. Telefonlara ve tabletlere yönelik düzenlerin genellikle, eylem çubuğuna olan bağımlılığından ötürü televizyonlar için uygun olmadığından, aşırı yüklenme desteğinden yoksun vb. Televizyon merkezli kaynaklar için bir kaynak seti niteleyicisi olarak '-television'ı kullanın. – CommonsWare

cevap

4

Her şeyden önce, büyük ölçüde doğrusınız. Onların elemeleri olarak var olmadığın sw720p/sw1080p çalışmıyor nedeni budur

sw360dp/ : 720p screens 
sw540dp/ : 1080p screens 

kullanabilirsiniz. Farklı ekran boyutlarıyla çalışma hakkında

This is the official documentation. Okuyabildiğiniz gibi, dp klasörünüzü hesaplamak istiyorsanız iki farklı birim vardır: piksel sayısı (örneğin, 720) ve piksel yoğunluğu (yani, inç başına nokta birimi veya kaç tane) pikseller tek bir inç içine sığdırılır. bu durumda biz varken

px = dp * (dpi/160) 

:

Tabii
dp = px * 160/dpi 

, TV farklı yoğunluklara sahip olabilir:

formülü oldukça basittir bu tablo size bu konuda daha fazla söyler (kaynak : official documentation).

Densities table

en biz (320 dpi @) ekstra yüksek yoğunluklu 1080p ekrana sahip varsayalım. Biz kaynaklarınızı koymak

dp = 1080 * 160/320 = 540 

yüzden olsun matematiği geri uygun klasörü yapmak


EDIT:. Aynı sayfada, belirli bir tvdpi eleme olduğu belirtilmektedir o TV ile ilgili kaynaklarınız için kullanabilirsiniz (yaklaşık 213 dpi).

+0

Teşekkürler. Bu, tüm 1080p ve 720p TV'nin 320 DPI olduğu anlamına mı geliyor? (Müşterim sorduğumda DPI'yı bilmediğinden). –

+0

Aynı sayfada, 'tvdpi'nin 213 dpi civarında olduğu belirtiliyor. – Sebastiano

+0

Gözlemlerimden bir 720p TV'de 'tvdpi' kullanılırken, 1080p TV'de xhdpi kullanılıyor. Bu, ** her iki ** nin, 960x540 dp (yaklaşık 720p için) yoğunluk bağımsız boyutlara sahip olduğu ve her ikisi de sw540dp 'kovasına sığacağı anlamına gelir. Bu yüzden 720p'yi hedeflemek için 'sw360dp' kullanmanın özellikle yanlış olduğuna inanıyorum. –

3

Android TV için dikkate alınabilecek üç ekran yoğunluğu ve üç uygun niteleyici var. Bunlar aşağıdakileri içerir:

  1. tvdpi - (213dpi) - 720 televizyon için tasarlanmıştır;
  2. xhdpi - (320dpi) - 1080p (HD) televizyonlar için tasarlanmıştır; 4k (Ultra HD) televizyonlar için tasarlandı - (640dpi) - (640dpi) - 4k (Ultra HD) televizyonlar için tasarlanmıştır.

Ama https://developer.android.com/training/tv/start/layouts.html#density-resources göre:

1920 x 1080 piksel [standart 1080p/HD] ve bir ekran boyutu hedeflemesi gerektiğini TV'niz düzeni daha sonra Android sistem için düzen öğelerini downscale izin Gerekirse 720p.

Bu

bu tavsiyesine uyup her zaman 1080p spesifikasyonlarına tasarım varsa, -television UI Mode Qualifier kullanabilir ve onunla yapılabilir, anlamına gelmektedir.

Farklı TV boyutları için farklı görüntüler ve paftalar dağıtmanız gerekiyorsa, yine de yukarıdaki ekran yoğunluğu niteleyicileri kullanabilirsiniz.

Televizyon için “standart” görüntüler ve düzenler, xhdpi klasörü 1080p TV'ler için kullanılan niteleyici olduğundan -xhdpi klasöründe saklanabilir.

4k TV'ler için yüksek çözünürlüklü (isteğe bağlı) görüntülerin istenmesi durumunda, bunlar “2x” görüntüler olarak sağlanabilir ve drawable-xxxhdpi klasöründe depolanabilir. Benzer şekilde, yalnızca 4k TV'leri hedefleyen boyutlar/düzenler -xxxhdpi'a yerleştirilebilir.

(-tvdpi niteleyici 720p özgüdür ve modern bir TV desteklemek için kullanmak istediğiniz neredeyse kesin olmadığını özellikle dikkat edin.)

dokümantasyon seyrek ve hafif çelişkili, ama öncelikle bu temel bu kaynaklara:

https://developer.android.com/guide/practices/screens_support.html https://stackoverflow.com/a/11581786/925478

tipik 1080p tanıtır
İlgili konular