androidxhdpi與hdpi
A. 如何處理與Android XLARGE屏幕
一、關於布局適配建議 1、不要使用絕對布局 2、盡量使用match_parent 而不是fill_parent 。 3、能夠使用權重的地方盡量使用權重(android:layout_weight) 4、如果是純色背景,盡量使用android的shape 自定義。 5、如果需要在特定解析度下適配,可以在res目錄上新建layout-HxW.xml的文件夾。比如要適配1080*1800的屏幕(魅族MX3採用此解析度)則新建layout-1800x1080.xml的文件夾,然後在下面定義布局。Android系統會優先查找解析度相同的布局,如果不存在則換使用默認的layout下的布局。 二、術語和概念 四種屏幕尺寸分類:: small, normal, large, and xlarge 四種密度分類: ldpi (low), mdpi (medium), hdpi (high), and xhdpi (extra high) 需要注意的是: xhdpi是從 Android 2.2 (API Level 8)才開始增加的分類. xlarge是從Android 2.3 (API Level 9)才開始增加的分類. DPI是「dot per inch」的縮寫,每英寸像素數。 一般情況下的普通屏幕:ldpi是120,mdpi是160,hdpi是240,xhdpi是320。 三、如何做到自適應屏幕大小呢? 1)界面布局方面 需要根據物理尺寸的大小准備5套布局,layout(放一些通用布局xml文件,比如界面中頂部和底部的布局,不會隨著屏幕大小變化,類似windos窗口的title bar),layout-small(屏幕尺寸小於3英寸左右的布局),layout-normal(屏幕尺寸小於4.5英寸左右),layout-large(4英寸-7英寸之間),layout-xlarge(7-10英寸之間) 2)圖片資源方面 需要根據dpi值准備5套圖片資源,drawable,drawalbe-ldpi,drawable-mdpi,drawable-hdpi,drawable-xhdpi Android有個自動匹配機制去選擇對應的布局和圖片資源 四、兩種獲取屏幕解析度信息的方法: DisplayMetrics metrics = new DisplayMetrics(); Display display = activity.getWindowManager().getDefaultDisplay(); display.getMetrics(metrics); //這里得到的像素值是設備獨立像素dp //DisplayMetrics metrics=activity.getResources().getDisplayMetrics(); 這樣獲得的參數信息不正確,不要使用這種方式。 不能使用android.content.res.Resources.getSystem().getDisplayMetrics()。這個得到的寬和高是空的。
B. Android應用的UI設計圖要做多大解析度
Android應用的UI設計圖要做的解析度為:1920*1080;
一般來說安卓常見的解析度為:320*480;480*800;540*960;720*1280;1920*1080;
但對於UI設計來說,盡可能保持設計的解析度達到技術開發的標准,一般都以720*1280或1920*1080為主,但為了避免技術協調的沖突,則以1920*1080為主,不會出現大的錯誤。
C. 安卓手機文本規范是啥
眾所周知,安卓系統是開源的,國內又有超多的手機廠商,小米、魅族、華為、oppo、三星等,每一個品牌有屬於自己的UI設計規范,但是我們主要分析UI界面尺寸規范。
1、字體
安卓系統中文採用的是思源黑體,英文字體為robot字體。
只使用偶數單位 24 pt,28 pt,36 pt等字體大小
2、mdpi、hdpi、 xhdpi、xxhdpi、xxxhdpi、dp、px到底是什麼意思?
講圖標之前先來分析一下一排英文的意思:
mdpi、hdpi、 xhdpi、xxhdpi、xxxhdpi都是表示的屏幕密度大小,依次數值越大,其解析度越高。常用的是xxhdpi和xxxhdpi。
dp是安卓系統專用的長度單位,設備獨立像素的意思。不同設備有不同的顯示效果,這個和設備硬體有關。多為圖標使用,文字則用sp(放大像素),主要用於字體顯示best for textsize。
px是像素的意思, 不同設備顯示效果相同。
D. mdpi,hdpi,xhdpi,xxhdpi這四種格式的像素分別是多少
ldpi:240x320
mdpi:320x480
hdpi:480x800、480x854
xhdpi:至少960*720
xxhdpi:1280×720
屏幕相關概念
1、解析度
:是指屏幕上有橫豎各有多少個像素
2、屏幕尺寸
:指的是手機實際的物理尺寸,比如常用的2.8英寸,3.2英寸,3.5英寸等;
3、密度無關的像素: dip是一種虛擬的像素單位
,dip和具體像素值的對應公為dip/pixel=dpi值/160,也就是px
=
dp
*
(dpi
/
160)
,目前主要是以解析度為800*480和854*480的手機用戶居多
4、屏幕密度
:每英寸像素數
,手機可以有相同的解析度,但屏幕尺寸可以不同。比如安卓將
實際的屏幕密度分為四個通用尺寸——low,medium,high,and
extra
high;而一般情況下的普通屏幕ldpi是120dpi,mdpi是160dpi,hdpi是240dpi,xhdpi是320dpi
,對於屏幕來說,dpi越大,屏幕的精細度越高,屏幕看起來就越清楚
參考資料
C博客:http://blog.csdn.net/Caster_Saber/article/details/50393855
E. eclipse android 怎樣使用大屏幕的xhdpi
android中圖片適配是一件很棘手的事情,本篇文章詳細的介紹屏幕顯示的原理,為什麼會資源文件中會存在
drawable-ldpi、drawable-mdpi、drawable-hdpi、drawable-xhdpi等文件夾,為什麼要使用dp作為單位等等。
首先從這兩張圖片的顯示效果開始說起
這是一張200x200的圖片在不同的手機上的顯示效果。很明顯第二張圖片看上去要比第一張佔用的空間小很多?這是為什麼呢?
這里我們引入 ppi (pixel per inch)名詞,翻譯過來就是每英寸的距離像素點的個數。現在來解釋上面的現象。對於一張200x200像素的圖片,我國我們想要顯示在 200ppi 的手機上,那麼佔用屏幕的長和寬均為 200pix / (200pix / inch) = 1 inch ,也就是說要佔用 1 inch x 1 inch,如果要顯示在 300ppi 的手機上,那麼佔用屏幕的長和寬均為 200pix / (300pix / inch ) = 2/3 inch,也就是說對於 ppi越高的手機,單位inch上能夠顯示更多的像素點,因此當這兩種手機顯示同樣多的像素點的時候,ppi 越高的手機佔用的空間就越小。這就是我們想要圖片在各種手機屏幕上都顯示一致的效果時需要解決的問題。
既然這種效果不是我們想要的,怎麼做才能獲取一致的顯示效果呢?下面介紹三種方法
方法一:對每一中不同的ppi使用不同的圖片,這需要我們先判斷屏幕的ppi,再對圖片進行處理,然後顯示,顯然比較麻煩。而且對於獲取屏幕ppi這個參數android並沒有提供給我們api調用。所以這種辦法基本行不通
方法二: 在用eclipse開發環境生成一個android項目後,系統會給我們生成drawable-ldpi、drawable-mdpi、drawable-hdpi、drawable-xhdpi,drawable-xxhdpi,對於同一張圖片資源,我們分別創建這五個版本來適應不同的屏幕。假設你想一張圖片
在 200ppi和400ppi的手機上顯示的長和寬都是一樣的為 1inch x 1inch,那麼你就需要製作一張200x200的圖片和一張
400x400的圖片,然後放入對應得drawable目錄中就可以了。那麼程序運行時怎麼知道自己到底是使用哪個drawable目錄下
的圖片呢?這個是不需要我們考慮的,而是手機廠商考慮的問題,只需要知道,程序會使用適應當前屏幕的目錄下的圖片
資源。
drawable-ldpi、drawable-mdpi、drawable-hdpi、drawable-xhdpi,drawable-xxhdpi,這幾個目錄對應的pppi為
120ppi 160ppi 240ppi 320ppi 480ppi ,也就是說如果屏幕的ppi為320,那麼就會優先使用drawable-xhdpi目錄下的
圖片資源。當然手機屏幕的ppi也是多種多樣,例如有的是 300ppi,有的是220ppi,這個系統會選擇最接近的目錄,也就
是 300ppi的手機會選擇320ppi對應的drawable目錄下的資源
方法三:方法2中需要為每個drawable目錄都生成對應的圖片版本,如果圖片較多的話,生成不同版本的圖片倒是小事更主要的缺點是會增大應用的大小,那麼可不可以只在一個目錄下存放圖片,例如只在drawable-mdpi目錄下存放圖片呢答案是可以的,假設我們在drawable-hdpi(對應的ppi為160ppi)目錄下存放了一個100X100的圖片,那麼當圖片需要
在320ppi的android設備上進行顯示時,android系統會將自動將圖片進行處理生成一個200X200的圖片顯示到設備上,那麼他們佔用的空間大小分別為 100/160 = 3/5 inch 200/320 = 3/5 inch 可以看出他們佔用的長和寬都是一樣的這種自動縮放的優點是只需要一張圖片就能適應各種ppi類型的屏幕。缺點是當對100X100的圖片進行變換成200X200的圖片時肯能會造成圖片的不清晰,如果提供一個drawable-xhdpi下的圖片資源,圖片較多的話會無形增加應用的大小,所以說如何進行選擇也是一個衡量。建議是將比較重要的圖片資源提供多個版本(當android設備和自己的ppi相對應的drawable下找到想要的資源時,就不會再到其他目錄需找資源)。不是很重要的圖片資源存儲一個版本,讓系統根據自己的ppi自己對圖片進行適當的縮放顯示。
最後再說下為什麼在布局文件中使用 dp作為單位而不是使用px
dp是一個與屏幕ppi無關的參數,同時也是一個事實上並不存在的虛擬單位。顯示時會根據具體屏幕的ppi進行像素的映射,關系如下160ppi 1dp 1px120ppi 1dp 0.75px240ppi
1dp 1.5px320ppi 1dp 2px因此在布局文件中一般使用dp作為單位,這樣就能適應不同ppi的屏幕,在各種ppi的屏幕上有一樣大的物理上的距離。(可以看出1dp並不總是等於1px的,對於ppi高的屏幕肯能要等於2px,只是為了物理上看起來的距離是相等的)
最後希望大家能夠明白 我們經常說的解析度和ppi的關系,其實他們是沒多大關系。解析度只是說明屏幕上有多少個像素點,這也跟屏幕大小有關系。當然對於屏幕大小相同的來講 解析度越高 ppi越大,如果脫離了屏幕的物理尺寸談解析度是沒有任何意義的。就像平板的解析度比手機的大,那是因為平板個大呀。從顏色顯示的細膩程度上講並不見得比手機強。
F. 如圖右側,請問mdpi,hdpi,xhdpi,xxhdpi四種的像素具體分別是多少
ldpi:240x320
mdpi:320x480
hdpi:480x800、480x854
xhdpi:至少960*720
xxhdpi:1280×720
G. android 怎麼判定使用的drawable資源是hdpi還是mdpi的
hdpi還是mdpi的是根據密度(DPI)區分的。
一般情況下的普通屏幕:ldpi是120,mdpi是160,hdpi是240,xhdpi是320。
DPI的計算方式:
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int densityDpi = dm.densityDpi;
H. Android屏幕適配的哪些事
為了保證用戶獲得一致的用戶體驗效果,使得某一元素在Android不同尺寸、不同解析度的手機上具備相同的顯示效果,則需要我們進行屏幕適配。
基礎概念
屏幕尺寸
屏幕尺寸是指屏幕對角線的長度,單位是英寸,1 inch=2.54 cm
屏幕解析度
手機在橫向和縱向上的像素點數總和,單位是像素(pixel),1px = 1像素點,舉個栗子,1080x1920,即寬度方向上有1080個像素點,在高度方向上有1920個像素點。
屏幕像素密度
每英寸像素點個數,單位是dpi,dots per inch。為簡便起見,Android 將所有屏幕密度分組為六種通用密度: 低、中、高、超高、超超高和超超超高。
ldpi(低)~120dpi
mdpi(中)~160dpi
hdpi(高)~240dpi
xhdpi(超高)~320dpi
xxhdpi(超超高)~480dpi
xxxhdpi(超超超高)~640dpi
- dimen_example2.png
- 即使使用dp,依然不能解決屏幕解析度的適配問題,我們可以針對不同的屏幕創建不同的dimen值。
I. Android中dpi,drawable和VGA的區別以及聯系
1.drawable-(hdpi,mdpi,ldpi)的區別:
dpi是「dot per inch」的縮寫,每英寸像素數。
四種密度分類: ldpi (low), mdpi (medium), hdpi (high), and xhdpi (extra high)
一般情況下的普通屏幕:ldpi是120,mdpi是160,hdpi是240,xhdpi是320。
2.WVGA,HVGA,QVGA的區別:
VGA是"Video Graphics Array",顯示標准為640*480。
WVGA(Wide VGA)解析度為480*800
HVGA(Half VGA)即VGA的一半解析度為320*480
QVGA(Quarter VGA)即VGA非四分之一解析度為240*320
3.drawable-(hdpi,mdpi,ldpi)和WVGA,HVGA,QVGA的聯系:
hdpi裡面主要放高解析度的圖片,如WVGA (480x800),FWVGA (480x854)
mdpi裡面主要放中等解析度的圖片,如HVGA (320x480)
ldpi裡面主要放低解析度的圖片,如QVGA (240x320)
系統會根據機器的解析度來分別到這幾個文件夾裡面去找對應的圖片