天天看點

移動端螢幕适配dp dpi 720P values-sw480dp layout-sw720dp

對于這個曆史遺留性問題每次回頭處理起來着實讓人頭疼

解決方案有以下幾種

1.張鴻洋已經實作了并且在githup上的AndroidAutoLayout

但是擔心不好維護最終還是老實使用回dp了。

2.一般來說設計師隻需要更你說我這個圖是幾倍圖你就放在相應的drawable檔案夾即可,AS會為你做剩下的事情。至于字型大小或者控件高度,工具滿天飛的現在設計師連dp都會給你标号的,是個Android程式要都知道dp是适配所有螢幕的吧?那麼第二問題也不存在了。講道理做完這些你基本上就不需要考慮螢幕适配的問題了。

也有特殊的情況 比如說手機螢幕上橫向布局過多,這将造成什麼呢?

螢幕的内容被擠出螢幕了?還是你做了single=true 導緻文字後面出現’…’

解決方案:

1.這個在目前的限制布局中似乎給出了解決方案(但目前不建議使用)

2.我的解決方法是

layout-sw720dp

這個是res檔案夾下的一個布局檔案意思是适配正常720P的手機螢幕寫特定布局檔案夾,一般一個項目裡面不會有太多需要單獨寫的布局 除非設計師是個腦殘。

3.還有一種即為dimens适配方案,大多數我們也就是說說而已,因為這樣的工作量不比布局适配輕松 在這裡我強烈建議大家養好界面上隻有引用,不能存在

width = "48dp" color="#0ff"

這樣的代碼,寫的時候爽 維護起來想哭。 而且如果是合作開發的話,會慢慢的沒有人願意和你合作的哦。

這裡給推薦一個比較好的命名方式

color="@color/color_#156665" dimen ="@dimen/space_10dp" dimen = "@dimen/font_size_14sp"

這樣非常容易維護和識别。

相信大家看了 你的布局裡沒有随意布局參數而是整齊的引用的時候一定會對你刮目相看的

以下為dimen适配的方案其實dimenTool這個工具類在幾年前就有了 個人在項目中使用過一次 但是沒有正正的遇到過螢幕适配的大問題。是以也隻是留存在我的項目當中。前段時間客戶說你的視訊播放器控件存在黑邊 我試過所有的手機後均沒有發現黑邊。在同僚的提醒下我下載下傳了一個夜神模拟器果然出現了傳說中的黑邊。

真正的螢幕适配開始了

dimenTool這個工具類似乎生成的工具參數有問題或者說根本就是錯誤的指引方式。不過值得借鑒

在他的基礎上我稍加修改,分享到我的有道上下載下傳連結

以下為正常情況能看到的資源檔案

移動端螢幕适配dp dpi 720P values-sw480dp layout-sw720dp

values-sw 為通用寫法

120 240 320 480 分别為160的

0.75 1.5 2 3 所代表的為放大倍數

• ldpi 120 dpi

• mdpi 160 dpi

• hdpi 240 dpi

• xhdpi 320 dpi

• xxhdpi 480 dpi

還有 480P 720P 1080P 的概念

一般情況下相同的尺寸和上面dpi是對應的

靈感來源

如果你自己思考了dpi和分辨率的關系的話,你會發現,他們的關系就是沒有關系

DPI:dots per inch,一英寸的像素數量,這個值是裝置自己決定的,是寫死的

那麼問題來了 “不正常情況呢?”

比如說 1080P mdpi的螢幕 720P ldpi的螢幕

第一個螢幕大小有電腦的三分之一 第二個和同樣尺寸的720P手機比起來相當模糊

這些都是不正常 的手機螢幕 一般不奇葩的話客戶發現不了。

用模拟器的朋友們注意了

電腦螢幕一般都是一比一吧,也就是mdpi 也就是為什麼自己的項目在手機上好好的到了模拟器(分辨率1080*1920)上就像壓扁了一樣

values-sw480dp-port

是很有必要的 這樣可以強制拉伸到自己想要的大小。

系統判定為480dpi但是找不到就隻能引入低分辨率的values直到為預設values。

一般設計師是為了照顧ios 會按照750P計算尺寸。Android就但當是720P的就行了 圖檔放在

drawable-xhdpi

說了這麼多感覺自己仍然有些東西講的不夠清晰有關于分辨率的知識點感覺不是一次就能弄懂的。。做個筆記mark一下。

關注公衆号領取更多幹貨

移動端螢幕适配dp dpi 720P values-sw480dp layout-sw720dp

繼續閱讀