自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何創(chuàng)建支持不同屏幕尺寸的Android應(yīng)用

移動開發(fā) Android
Android用兩種常規(guī)屬性來分類設(shè)備屏幕:尺寸和像素密度。作為開發(fā)者,你應(yīng)當(dāng)預(yù)料到你的android應(yīng)用程序?qū)话惭b到不同屏幕尺寸和像素密度的設(shè)備上。

Supporting Different Screens

Android用兩種常規(guī)屬性來分類設(shè)備屏幕:尺寸和像素密度。作為開發(fā)者,你應(yīng)當(dāng)預(yù)料到你的android應(yīng)用程序?qū)话惭b到不同屏幕尺寸和像素密度的設(shè)備上。因此,你的應(yīng)用應(yīng)當(dāng)包含可選的資源來優(yōu)化應(yīng)用外觀,以便支持上述不同尺寸和像素密度的設(shè)備。

  • * 有四種廣義的尺寸:small, normal, large, xlarge。
  • * 同樣也有四種廣義的像素密度:low (ldpi), medium (mdpi), high (hdpi), extra high (xhdpi)。

為了聲明用于不同屏幕的不同layouts布局和bitmaps資源,你必須把這些可選的資源文件分別放在不同的目錄,這一點類似于你在國際化時不同語言strings的操作。

同時要注意屏幕的方向(landscape or portrait)也被認(rèn)為是一種屏幕尺寸的變化,所以大多數(shù)應(yīng)用都應(yīng)該修改layout布局來提高用戶在不同屏幕方向上的體驗。

創(chuàng)建不同的Layout布局文件-Create Different Layouts

為了提高在不同設(shè)備屏幕上的用戶體驗,你應(yīng)當(dāng)為每一種你想要支持的屏幕尺寸創(chuàng)建一個獨有的XML布局文件。每一布局文件應(yīng)當(dāng)存放到恰當(dāng)?shù)馁Y源目錄下,該目錄以屏幕尺寸-作為后綴。例如,一個用于大屏幕的布局文件應(yīng)當(dāng)放在res/layout-large/目錄下面。

注:Android會自動縮放你的布局以便適配屏幕。這樣,用于不同屏幕的布局文件就不必過多考慮UI元素的絕對大小,相反應(yīng)當(dāng)關(guān)注于布局的結(jié)構(gòu),這將直接影響用戶體驗(比如重要view視圖的大小或位置應(yīng)當(dāng)相對于同級view視圖)。

例如,下面的項目包含了一個默認(rèn)的layout和一個可選的用于大屏幕的layout目錄:

  1. MyProject/ 
  2.     res/ 
  3.         layout/ 
  4.             main.xml 
  5.         layout-large/ 
  6.             main.xml 
  7.   

目錄中的布局文件名必須保持一致,但是它們的內(nèi)容可以不同,以便提供優(yōu)化的UI來支持相對應(yīng)的屏幕尺寸。

像往常一樣在app中簡單地獲得layout布局文件的引用:

  1. @Override 
  2.  protected void onCreate(Bundle savedInstanceState) { 
  3.      super.onCreate(savedInstanceState); 
  4.      setContentView(R.layout.main); 
  5.  } 
  6.   

Android系統(tǒng)將根據(jù)你的app應(yīng)用所運行設(shè)備的屏幕尺寸從適當(dāng)?shù)膌ayout目錄加載布局文件。更多關(guān)于Android系統(tǒng)如何選擇適當(dāng)?shù)馁Y源文件可以在 Providing Resources | 資源提供 - Providing Resources 指導(dǎo)中獲取。
下面是另外一個案例,在這個項目中使用了可選的橫向布局來支持橫向屏幕:

  1. MyProject/ 
  2.     res/ 
  3.         layout/ 
  4.             main.xml 
  5.         layout-land/ 
  6.             main.xml 
  7.   

缺省情況下,layout/main.xml文件是垂直方向布局的。

如果你想提供一個特殊的橫向布局,比如支持大屏幕,你需要同時使用large和land來修飾。

  1. MyProject/ 
  2.     res/ 
  3.         layout/              # default (portrait) 
  4.             main.xml 
  5.         layout-land/         # landscape 
  6.             main.xml 
  7.         layout-large/        # large (portrait) 
  8.             main.xml 
  9.         layout-large-land/   # large landscape 
  10.             main.xml 
  11.   

注:*Android 3.2 及以上版本支持一種更好的方法來定義屏幕尺寸,它允許我們在與密度無關(guān)的像素情況下通過最小寬度和高度來為不同屏幕指定資源在。本章節(jié)中我們沒有涉及該新特性。如果想獲得更多相關(guān)信息,請閱讀Designing for Multiple Screens | 多屏幕適配設(shè)計 - Designing for Multiple Screens

創(chuàng)建不同的Bitmaps資源-Create Different Bitmaps

你應(yīng)當(dāng)為所有廣義像素密度中的每一種都提供已經(jīng)縮放好的適當(dāng)?shù)腷itmap資源:低low, 中medium, 高h(yuǎn)igh以及特高extra-high像素密度。這將使你的應(yīng)用在所有分辨率的設(shè)備上都獲得優(yōu)良的圖形質(zhì)量和呈現(xiàn)效果。

為了生成這些圖片資源,你應(yīng)當(dāng)以矢量圖的格式來制作原始圖片資源,然后根據(jù)下面的縮放尺寸生成每一種分辨率的圖片:

  • 特高分辨率xhdpi: 2.0
  • 高分辨率hdpi: 1.5
  • 中分辨率mdpi: 1.0 (基準(zhǔn))
  • 低分辨率ldpi: 0.75

這意味著如果你要為特高分辨率設(shè)備生成一張200x200的圖片,那么你需要為高分辨率設(shè)備生成150x150,中分辨率設(shè)備生成100x100,低分辨率設(shè)備生成

75x75的圖片。

然后把這些文件放置到恰當(dāng)?shù)馁Y源目錄:

  1. MyProject/ 
  2.     res/ 
  3.         drawable-xhdpi/ 
  4.             awesomeimage.png 
  5.         drawable-hdpi/ 
  6.             awesomeimage.png 
  7.         drawable-mdpi/ 
  8.             awesomeimage.png 
  9.         drawable-ldpi/ 
  10.             awesomeimage.png 
  11.   

以后在你引用@drawable/awesomeimage時,系統(tǒng)將根據(jù)設(shè)備的分辨率自動選擇適當(dāng)?shù)膱D片資源。

注:低分辨率(ldpi)的資源并不總是必需的。當(dāng)你提供高分辨率資源時,系統(tǒng)將把它們對半縮放來適配低分辨率設(shè)備。

獲取更多關(guān)于創(chuàng)建應(yīng)用圖標(biāo)的技巧和設(shè)計指導(dǎo),可以查看Iconography design guide|圖標(biāo)設(shè)計指南-Iconography design guide。

責(zé)任編輯:張葉青 來源: eoe Android開發(fā)者社區(qū)
相關(guān)推薦

2015-03-20 10:34:16

用戶體驗應(yīng)用設(shè)計

2016-12-28 10:23:33

Android適配難題

2018-12-03 16:00:22

Linux屏幕設(shè)置壁紙

2014-04-16 13:31:27

AndroidFragment多屏幕支持

2012-04-14 21:11:46

iPhone 5

2011-09-16 16:22:45

Android應(yīng)用DXHome

2010-01-27 15:29:25

Android屏幕大小

2011-10-11 10:10:57

2012-08-03 08:30:38

Andoird用戶界面設(shè)置字體大小

2013-07-30 15:24:53

App應(yīng)用體驗

2023-10-08 15:23:09

側(cè)獲取屏幕DPI鴻蒙

2014-10-21 15:26:37

Material DeAndroid應(yīng)用

2011-09-07 13:06:04

Android Wid

2024-09-06 10:46:04

2011-06-07 09:15:35

參數(shù)設(shè)置屏幕UI設(shè)計

2024-05-10 08:23:44

Android屏幕截圖方法

2014-08-08 14:46:25

手機(jī)型號屏幕尺寸

2012-05-10 09:34:27

TV

2024-08-22 10:11:00

字典取值源碼

2011-03-03 14:23:42

BlackBerry
點贊
收藏

51CTO技術(shù)棧公眾號