日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

android UI设计时须要注意遵循的设计原则

發(fā)布時(shí)間:2024/1/17 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android UI设计时须要注意遵循的设计原则 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、Android設(shè)備屏幕尺寸分布

首先看一下各種屏幕的尺寸和屏幕密度劃分,下圖是各種屏幕尺寸相應(yīng)的范圍:

從上圖能夠看出。相應(yīng)normal尺寸的屏幕范圍集中在常見(jiàn)的3到5寸屏之間。large尺寸相應(yīng)的就主要是5到7寸的nottpad之類(lèi)的設(shè)備。比如三星的Note和Nexus7平板等,再網(wǎng)上走就是平板電腦了。接下來(lái)是屏幕密度(dpi),須要說(shuō)明的時(shí),平時(shí)所說(shuō)的屏幕分辨率事實(shí)上不能作為屏幕適配的根據(jù),應(yīng)該根據(jù)屏幕密度和屏幕尺寸來(lái)?yè)Q算,屏幕密度是指每寸屏幕內(nèi)容納的像素?cái)?shù),屏幕密度從ldpi到xhdpi分別相應(yīng)為120dpi、160dpi、240dpi、320dpi,屏幕密度越高、分辨率越高、屏幕尺寸越小就產(chǎn)生了視網(wǎng)膜屏幕。

在屏幕適配中。Google推薦針對(duì)mdpi(160dpi)進(jìn)行設(shè)計(jì)。然后依照比例進(jìn)行縮放,這樣的方法主要針對(duì)位圖(某些不規(guī)則圖片,無(wú)法拉伸的圖片,其它建議使用.9圖)。以mdpi作為baseline,并以3:4:6:8的比例縮放:

2、Android資源文件

drawable-hdpi里面存放高分辨率的圖片,如WVGA (480x800),FWVGA (480x854)
drawable-mdpi里面存放中等分辨率的圖片,如HVGA (320x480)
drawable-ldpi里面存放低分辨率的圖片,如QVGA (240x320)

3、Android上常見(jiàn)度量單位

px(像素):屏幕上的點(diǎn),絕對(duì)長(zhǎng)度。與硬件相關(guān)。

in(英寸):長(zhǎng)度單位。

mm(毫米):長(zhǎng)度單位。

pt(磅):1/72英寸,point。

dp(與密度無(wú)關(guān)的像素):一種基于屏幕密度的抽象單位。在每英寸160點(diǎn)的顯示器上。1dp = 1px。

dip:Density-independent pixel,同dp同樣。

sp:在dp的基礎(chǔ)上,還與比例無(wú)關(guān)。個(gè)人理解為是一個(gè)矢量圖形單位。

在xml中定義大小,建議TextView使用sp。其它使用dp

相應(yīng)關(guān)系

? ? ? ? ? ? ? ? Android手機(jī)屏幕標(biāo)準(zhǔn) ? ? ??相應(yīng)圖標(biāo)尺寸標(biāo)準(zhǔn) ? 屏幕密度

xhdpi ? ? ? ? ? ? ? 1280*720 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 96*96 ? ? ? ? ? ? 320

hdpi ? ? ? ? ? ? ? ? 480*800 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 72*72 ? ? ? ? ? ? 240

mdpi ? ? ? ? ? ? ? ?480*320 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 48*48 ? ? ? ? ? ? 160

ldpi ? ? ? ? ? ? ? ? ?320*240 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?36*36 ? ? ? ? ? ? 120

模擬器上不同分辨率全部相應(yīng)的信息:?

QVGA : {density=0.75, width=240, height=320, scaledDensity=0.75, xdpi=120.0, ydpi=120.0}
HVGA : ?{density=1.0, width=320, height=480, scaledDensity=1.0, xdpi=160.0, ydpi=160.0}
WVGA : {density=1.5, width=480, height=800, scaledDensity=1.5, xdpi=240.0, ydpi=240.0}

當(dāng)中。density為顯示的邏輯分辨率;width及height就為屏幕分辨率(為絕對(duì)寬度與高度),與fields中的widthPixels及 heightPixels一致;scaleDensity與density一致;xdpi及ydpi為x方向與y方向的像素密度

4、怎樣計(jì)算密度(dpi)

1.標(biāo)準(zhǔn)是240*320畫(huà)在1.5*2平方inch上。那么像每平方英寸有240*320/(1.5*2)=25600點(diǎn),也就是一平方英寸的像素點(diǎn)為25600,所以dpi取為它的平方根160;假設(shè)你的dpi是120,那么它的密度就是0.75.

2. 密度不僅僅是與width有關(guān)。還與height有關(guān),所以無(wú)論width是1.8還是1.3,它的密度都有可能是1;比方width是1.8。僅僅要它的 height是3/1.8的話,假設(shè)pixel為240*320的話,它的密度仍舊是1;相同假設(shè)width為1.3,僅僅要它的 height為3/1.3的話,像素點(diǎn)為240*320,則密度也是1.

3.320*480/(1.5*2)得到單位平方英寸的點(diǎn)為51200,所以單位平方英寸是240*320畫(huà)在1.5*2屏幕的2倍。可是這是平方英寸啊,算密度的時(shí)候要開(kāi)平方的啊,所以應(yīng)該是2開(kāi)平方,是1.414吧。大致密度為1.5。


5、px與dip的關(guān)系

Android中。在160dpi (mdpi)中, 1 dip= 1 px;

以此類(lèi)推,在120dpi(ldpi)中, 1 dip = 0.75px;

? ? ? ? ? ? ? ? ? 在240dpi (hdpi)中, ?1 dip = 1.5px;

? ? ? ? ? ? ? ? ? 在320dpi(xhdpi)中, 1dip = 2px。

6、怎樣做到與密度無(wú)關(guān)

  假設(shè)屏幕密度為160,這時(shí)dp和sp和px是一樣的。

1dp=1sp=1px,但假設(shè)使用px作單位,假設(shè)屏幕大小不變(假設(shè)還是3.2寸)。而屏 幕密度變成了320。那么原來(lái)TextView的寬度設(shè)成160px,在密度為320的3.2 寸屏幕里看要比在密度為160的3.2寸屏幕上看短了一半。但假設(shè)設(shè)置成160dp或160sp的話。

系統(tǒng)會(huì)自己主動(dòng)將width屬性值設(shè)置成320px的。

也就是160 * 320 / 160。

當(dāng)中320 / 160可稱為密度比例因子。也就是說(shuō)。假設(shè)使用dp和sp。系統(tǒng)會(huì)依據(jù)屏幕密度的變化自己主動(dòng)進(jìn)行轉(zhuǎn)換。

官方文檔總結(jié)的計(jì)算公式為:pixels = dps * (density /160).

使用dip作為View的單位。這樣就能夠同一時(shí)候兼容各種不同的分辨率。不會(huì)造成UI的不可兼容。




總結(jié)

以上是生活随笔為你收集整理的android UI设计时须要注意遵循的设计原则的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。