您好,登錄后才能下訂單哦!
本篇文章為大家展示了如何創建支持不同屏幕尺寸的Android應用,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
Android用兩種常規屬性來分類設備屏幕:尺寸和像素密度。作為開發者,你應當預料到你的android應用程序將會被安裝到不同屏幕尺寸和像素密度的設備上。因此,你的應用應當包含可選的資源來優化應用外觀,以便支持上述不同尺寸和像素密度的設備。
* 有四種廣義的尺寸:small, normal, large, xlarge。
* 同樣也有四種廣義的像素密度:low (ldpi), medium (mdpi), high (hdpi), extra high (xhdpi)。
為了聲明用于不同屏幕的不同layouts布局和bitmaps資源,你必須把這些可選的資源文件分別放在不同的目錄,這一點類似于你在國際化時不同語言strings的操作。
同時要注意屏幕的方向(landscape or portrait)也被認為是一種屏幕尺寸的變化,所以大多數應用都應該修改layout布局來提高用戶在不同屏幕方向上的體驗。
為了提高在不同設備屏幕上的用戶體驗,你應當為每一種你想要支持的屏幕尺寸創建一個獨有的XML布局文件。每一布局文件應當存放到恰當的資源目錄下,該目錄以屏幕尺寸-作為后綴。例如,一個用于大屏幕的布局文件應當放在res/layout-large/目錄下面。
注:Android會自動縮放你的布局以便適配屏幕。這樣,用于不同屏幕的布局文件就不必過多考慮UI元素的絕對大小,相反應當關注于布局的結構,這將直接影響用戶體驗(比如重要view視圖的大小或位置應當相對于同級view視圖)。
例如,下面的項目包含了一個默認的layout和一個可選的用于大屏幕的layout目錄:
MyProject/ res/ layout/ main.xml layout-large/ main.xml
目錄中的布局文件名必須保持一致,但是它們的內容可以不同,以便提供優化的UI來支持相對應的屏幕尺寸。
像往常一樣在app中簡單地獲得layout布局文件的引用:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); }
Android系統將根據你的app應用所運行設備的屏幕尺寸從適當的layout目錄加載布局文件。更多關于Android系統如何選擇適當的資源文件可以在 Providing Resources | 資源提供 - Providing Resources 指導中獲取。
下面是另外一個案例,在這個項目中使用了可選的橫向布局來支持橫向屏幕:
MyProject/ res/ layout/ main.xml layout-land/ main.xml
缺省情況下,layout/main.xml文件是垂直方向布局的。
如果你想提供一個特殊的橫向布局,比如支持大屏幕,你需要同時使用large和land來修飾。
MyProject/ res/ layout/ # default (portrait) main.xml layout-land/ # landscape main.xml layout-large/ # large (portrait) main.xml layout-large-land/ # large landscape main.xml
注:*Android 3.2 及以上版本支持一種更好的方法來定義屏幕尺寸,它允許我們在與密度無關的像素情況下通過最小寬度和高度來為不同屏幕指定資源在。本章節中我們沒有涉及該新特性。如果想獲得更多相關信息,請閱讀Designing for Multiple Screens | 多屏幕適配設計 - Designing for Multiple Screens
你應當為所有廣義像素密度中的每一種都提供已經縮放好的適當的bitmap資源:低low, 中medium, 高high以及特高extra-high像素密度。這將使你的應用在所有分辨率的設備上都獲得優良的圖形質量和呈現效果。
為了生成這些圖片資源,你應當以矢量圖的格式來制作原始圖片資源,然后根據下面的縮放尺寸生成每一種分辨率的圖片:
特高分辨率xhdpi: 2.0
高分辨率hdpi: 1.5
中分辨率mdpi: 1.0 (基準)
低分辨率ldpi: 0.75
這意味著如果你要為特高分辨率設備生成一張200x200的圖片,那么你需要為高分辨率設備生成150x150,中分辨率設備生成100x100,低分辨率設備生成
75x75的圖片。
然后把這些文件放置到恰當的資源目錄:
MyProject/ res/ drawable-xhdpi/ awesomeimage.png drawable-hdpi/ awesomeimage.png drawable-mdpi/ awesomeimage.png drawable-ldpi/ awesomeimage.png
以后在你引用@drawable/awesomeimage時,系統將根據設備的分辨率自動選擇適當的圖片資源。
注:低分辨率(ldpi)的資源并不總是必需的。當你提供高分辨率資源時,系統將把它們對半縮放來適配低分辨率設備。
獲取更多關于創建應用圖標的技巧和設計指導,可以查看Iconography design guide|圖標設計指南-Iconography design guide。
上述內容就是如何創建支持不同屏幕尺寸的Android應用,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。