2015-01-16 37 views
6

爲了定義1080p和720p android TV的不同尺寸值,我需要決定我應該使用哪個限定符。當我試圖使用諸如values-sw1080p,values-sw720p之類的東西時,它不起作用。 dimes.xml中的值不影響任何內容。但是,如果我使用-sw540dp,-sw360dp等限定符,它就可以工作。我真的不明白爲什麼那樣。任何想法?謝謝。我應該使用哪種資源限定符來支持1080p,720p Android TV? - Android

+0

顯示裝置是指接受原始分辨率格式1080p信號的能力,這意味着有一個真正的1920個像素寬度和1080個像素我n高度, –

+0

其中sw-7080p其中「sw」代表「屏幕寬度」。 –

+0

既不使用,至少對於電視機而言是不同的。請記住,手機和平板電腦的佈局通常不適合電視機使用,因爲依賴於操作欄,缺乏對過掃描的支持等等。使用'-television'作爲電視中心資源的資源集合限定符。 – CommonsWare

回答

4

首先,你基本上是正確的。您可以使用

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

sw720p/sw1080p不工作的原因是因爲它們不存在限定符。

This is the official documentation關於使用不同的屏幕尺寸。正如你可以讀到的,如果你想計算你的文件夾,有兩個不同的單位需要考慮:像素數(例如720)和像素密度(即點每英寸單位,或多少像素適合一英寸)。

的公式很簡單:

px = dp * (dpi/160) 

,而在這種情況下,我們有:

dp = px * 160/dpi 

當然,一臺電視機可以有不同的密度:此表告訴你更多關於它(源:official documentation)。

Densities table

假設我們有一個額外的高密度的1080p顯示器(@ 320 DPI)。我們做數學題

dp = 1080 * 160/320 = 540 

所以我們得到相應的文件夾,把你的資源在


編輯:在同一頁面上,它是說,有一個特定的tvdpi限定符您可以使用您的電視相關資源(約213 dpi)。

+0

謝謝。這是否意味着所有的1080p和720p電視都是320 DPI? (因爲當我問我時,我的顧客不知道DPI)。 –

+0

在同一頁上,聲明「tvdpi」約爲213 dpi。 – Sebastiano

+0

從我的觀察來看,720p電視使用'tvdpi',而1080p電視使用'xhdpi'。這意味着**這兩個**都具有密度無關的尺寸(960x540 dp)(大概爲720p),都適用於'sw540dp'桶。因此我相信使用'sw360dp'專門針對720p是不正確的。 –

3

Android TV可以考慮三種屏幕密度,以及三種相應的限定符。這些包括:

  1. tvdpi - (213dpi) - 用於720p的電視;
  2. xhdpi - (320dpi) - 用於1080p(HD)電視;
  3. xxxhdpi - (640dpi) - 用於4k(超高清)電視機。

但根據https://developer.android.com/training/tv/start/layouts.html#density-resources

您的電視佈局的目標應爲1920 x 1080像素[標準1080/HD],並 屏幕大小,然後讓Android系統來縮減您的佈局元素 如果需要,可以使用720p。

這意味着,如果按照這個建議,並始終以設計一個1080p的規格,你可以使用-televisionUI Mode Qualifier並用它做。

如果您需要爲不同的電視尺寸提供不同的圖像和佈局,您可以使用上面的屏幕密度限定符。

電視的「標準」圖像和佈局可以存儲在-xhdpi文件夾中,因爲xhdpi是用於1080p電視的限定符。

如果(可選)4k電視機需要高分辨率圖像,則可將圖像作爲「2x」圖像提供,並存儲在drawable-xxxhdpi文件夾中。類似地,僅針對4k電視的尺寸/佈局可以放置在-xxxhdpi中。

(特別注意-tvdpi預選賽是專門針對720p和幾乎可以肯定不是你想用它來支持現代化的電視內容。)

的文檔是稀疏,稍矛盾,但我基地這主要是上這些來源:

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

通常通告1080
相關問題