爲了定義1080p和720p android TV的不同尺寸值,我需要決定我應該使用哪個限定符。當我試圖使用諸如values-sw1080p,values-sw720p之類的東西時,它不起作用。 dimes.xml中的值不影響任何內容。但是,如果我使用-sw540dp,-sw360dp等限定符,它就可以工作。我真的不明白爲什麼那樣。任何想法?謝謝。我應該使用哪種資源限定符來支持1080p,720p Android TV? - Android
回答
首先,你基本上是正確的。您可以使用
sw360dp/ : 720p screens
sw540dp/ : 1080p screens
sw720p/sw1080p
不工作的原因是因爲它們不存在限定符。
This is the official documentation關於使用不同的屏幕尺寸。正如你可以讀到的,如果你想計算你的文件夾,有兩個不同的單位需要考慮:像素數(例如720)和像素密度(即點每英寸單位,或多少像素適合一英寸)。
的公式很簡單:
px = dp * (dpi/160)
,而在這種情況下,我們有:
dp = px * 160/dpi
當然,一臺電視機可以有不同的密度:此表告訴你更多關於它(源:official documentation)。
假設我們有一個額外的高密度的1080p顯示器(@ 320 DPI)。我們做數學題
dp = 1080 * 160/320 = 540
所以我們得到相應的文件夾,把你的資源在
編輯:在同一頁面上,它是說,有一個特定的tvdpi
限定符您可以使用您的電視相關資源(約213 dpi
)。
謝謝。這是否意味着所有的1080p和720p電視都是320 DPI? (因爲當我問我時,我的顧客不知道DPI)。 –
在同一頁上,聲明「tvdpi」約爲213 dpi。 – Sebastiano
從我的觀察來看,720p電視使用'tvdpi',而1080p電視使用'xhdpi'。這意味着**這兩個**都具有密度無關的尺寸(960x540 dp)(大概爲720p),都適用於'sw540dp'桶。因此我相信使用'sw360dp'專門針對720p是不正確的。 –
Android TV可以考慮三種屏幕密度,以及三種相應的限定符。這些包括:
- tvdpi - (213dpi) - 用於720p的電視;
- xhdpi - (320dpi) - 用於1080p(HD)電視;
- xxxhdpi - (640dpi) - 用於4k(超高清)電視機。
但根據https://developer.android.com/training/tv/start/layouts.html#density-resources:
您的電視佈局的目標應爲1920 x 1080像素[標準1080/HD],並 屏幕大小,然後讓Android系統來縮減您的佈局元素 如果需要,可以使用720p。
這意味着,如果按照這個建議,並始終以設計一個1080p的規格,你可以使用-television
UI 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- 1. RTL支持Android和資源限定符
- 2. Android我應該使用哪種佈局
- 3. Android Wear資源限定符
- 4. Android Chrome支持哪種ogg?
- 5. Android:我應該支持哪些版本的Android?
- 6. 我應該爲我的Android應用使用哪種雲服務
- 7. 我應該使用哪個資源來保留我的API RESTFul?
- 8. Android資源大小限定符
- 9. 我應該開發哪種Android版本?
- 10. 什麼是1080p電話資源限定符?
- 11. 使用Android支持V7庫資源在我的圖書館
- 12. 使用LeanBack支持庫自定義Android TV接口
- 13. Golang - 應該在哪裏資源保持
- 14. 我應該使用哪些Xcode設置來支持armv6和armv7?
- 15. Android:我應該支持哪些屏幕尺寸
- 16. 我在哪裏應該添加<支持屏> Android中tiapp.xml
- 17. Trigger.io支持哪種版本的android/iOs?
- 18. Android TV的多屏幕支持
- 19. Android TV是否支持多點觸控?
- 20. Android資源數量有哪些限制?
- 21. 我應該開發哪種Android版本? (現在M出來了)
- 22. REST API中的「投票」資源應該使用哪種方法?
- 23. 支持哪些Android應用分辨率?
- 24. Android內部存儲,我應該使用哪種模式?
- 25. Android:我應該使用哪種圖像格式,爲什麼?
- 26. Android ==>我應該使用哪種佈局?
- 27. 我應該使用哪種類型的Android服務?
- 28. Android:我應該使用哪種廣播/接收器組合?
- 29. Android集合,我應該使用哪些?
- 30. Android TV應用程序不支持亞馬遜FireTV
顯示裝置是指接受原始分辨率格式1080p信號的能力,這意味着有一個真正的1920個像素寬度和1080個像素我n高度, –
其中sw-7080p其中「sw」代表「屏幕寬度」。 –
既不使用,至少對於電視機而言是不同的。請記住,手機和平板電腦的佈局通常不適合電視機使用,因爲依賴於操作欄,缺乏對過掃描的支持等等。使用'-television'作爲電視中心資源的資源集合限定符。 – CommonsWare