關(guān)于Android屏幕適配中使用多個(gè)dimens的遇到的問題

我相信大家在android開發(fā)中遂蛀,肯定會(huì)遇到一個(gè)問題谭跨,那就是屏幕適配問題,通常我們做app只需要適配各種類型的手機(jī)就OK了李滴,最近公司要求把pad上的app適配到手機(jī)上螃宙,這個(gè)有點(diǎn)麻煩,所以著重研究了一下所坯。

基本概念:dp谆扎、sp、px芹助、dpi堂湖、density

  • dp:最常用的長(zhǎng)闲先、寬、margin无蜂、padding等的單位
  • sp:字體的單位伺糠,和dp差不多,區(qū)別是如果字體使用的sp為單位酱讶,那如果你手機(jī)字體調(diào)大了退盯,那你app的字體會(huì)隨之變大,如果用dp則不會(huì)變化泻肯。
  • px:像素
  • dpi:dots per inch渊迁,即每英寸上有多少個(gè)像素,也就是屏幕密度,具體計(jì)算下面寫說
  • density:density=dpi/160

dp和px轉(zhuǎn)換

px=dp*(dpi/160)

計(jì)算dpi灶挟、density

以5.5寸1920 * 1080的手機(jī)為例:

5.5寸是指手機(jī)對(duì)角線的長(zhǎng)度琉朽,分辨率是1920 * 1080,也就是知道長(zhǎng)像素是1920稚铣,寬像素是1080箱叁,那么對(duì)角線多長(zhǎng)呢,其實(shí)就是求斜邊的長(zhǎng)度: 1920^2+1080^2=2202^2

所以 dpi=2202/5.5=400

(哎呀惕医,有點(diǎn)啰嗦了)

需要注意的 dp是不管你手機(jī)密度有多大耕漱,它的物理尺寸是不變的,就是說抬伺,比如一個(gè)圖片設(shè)置大小100dp*100dp螟够,那它在dpi為320的手機(jī)上就占 200px * 200px,如果是dpi=400的手機(jī)上峡钓,那就占250px * 250px妓笙,那么你在屏幕上看到圖片的大小是沒有變化的

(我相信做android開發(fā),大家對(duì)這些應(yīng)該就很熟悉了能岩,就不詳細(xì)寫了寞宫,有不清楚的請(qǐng)自行學(xué)習(xí),哈哈)

說說適配的事


1.使用相對(duì)布局

我這相對(duì)布局的意思拉鹃,不只是使用RelativeLayout辈赋,還有使用LinearLayout中的weight。(插一句膏燕,在相同層級(jí)的情況下炭庙,推薦使用LinearLayout,如果可以減少層級(jí)煌寇,則使用RelativeLayout焕蹄,但是如果使用了weight,LinearLayout也就失去了它的優(yōu)勢(shì)阀溶,和相對(duì)布局一樣需要二次計(jì)算了)腻脏。

杜絕使用絕對(duì)布局鸦泳! 我相信現(xiàn)在應(yīng)該沒有人用絕對(duì)布局了吧

在寫布局的時(shí)候,就應(yīng)該考慮到屏幕大或者小永品,顯示會(huì)不會(huì)有問題做鹰。多想一下,很重要

我覺得只要布局寫的好鼎姐,基本可以解決90%的適配問題钾麸,當(dāng)然這也是要修煉內(nèi)功,才能運(yùn)用順暢的炕桨。(寫的多就有經(jīng)驗(yàn)啦)

2.生成各種尺寸的dimens

具體如何在values生成各種尺寸的dimens.xml,請(qǐng)參考下面鏈接
http://blog.csdn.net/hnzcdy/article/details/50628993

運(yùn)行結(jié)果下圖:

dimens.png

因?yàn)槭謾C(jī)尺寸太多饭尝,所以有時(shí)候,我們不得不在不同屏幕大小献宫,使用一些不同的值钥平,這個(gè)時(shí)候用dimens就很方便了。

不過在這里姊途,我主要是說涉瘾,sw240dp是啥意思,以及不同的手機(jī)具體使用哪個(gè)dimens捷兰。具體怎么使用立叛、生成,看上面那篇文章就可以啦贡茅。

sw:small width秘蛇,最小寬度,即不管手機(jī)是橫屏還是豎屏友扰,屏幕可展示的最小邊彤叉,比如1920*1080庶柿,那最小就是1080px村怪。

那么怎么什么手機(jī)用什么dimen呢?怎么算呢浮庐?

舉例說明:

  • 還是以1920*1080 5.5寸的手機(jī)舉例(這種手機(jī)目前比較多)
  • 這種手機(jī)呢甚负,dpi是400,denity是2.5审残,就是1dp=2.5px梭域,(前面算的)
  • dimens是按著最小邊大于哪個(gè)值就找哪個(gè)值
  • 那它應(yīng)該用哪個(gè)dimens呢?1080/2.5=432,按著上圖我們配置的搅轿,432>360,432<480,所以病涨,最終使用的是sw360dp的dimens.xml
  • 在320dp和480dp之間,有很多手機(jī)璧坟,所以我們可以把這個(gè)區(qū)間分的細(xì)一點(diǎn)既穆,比如320赎懦、340、360幻工、380励两、400,這樣適配會(huì)更好點(diǎn)

有人可能會(huì)疑惑囊颅,為啥要算的這么麻煩呢当悔,因?yàn)閟w360dp,說的是最小邊大于360dp就用這個(gè)dimens踢代,但是我們知道手機(jī)分辨率是像素盲憎,是px,所以要換算一下

備注一下奸鬓,使用dimens相當(dāng)于是等比縮放焙畔,自己可以在DimenTool中配置縮放比例

3.關(guān)于適配的感受

其實(shí)我覺得,要是想有好的用戶體驗(yàn)串远,pad和手機(jī)最好還是兩套設(shè)計(jì)宏多,畢竟兩者交互方式是有很大區(qū)別的,單純移植肯定體驗(yàn)比較差澡罚。簡(jiǎn)單一點(diǎn)呢伸但,就把一些比較明顯不合適的地方,寫兩套布局留搔,不同尺寸使用不同的布局更胖。

寫的有點(diǎn)亂,先這樣記錄一下隔显。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末却妨,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子括眠,更是在濱河造成了極大的恐慌彪标,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,348評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件掷豺,死亡現(xiàn)場(chǎng)離奇詭異捞烟,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)当船,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門题画,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人德频,你說我怎么就攤上這事苍息。” “怎么了?”我有些...
    開封第一講書人閱讀 156,936評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵竞思,是天一觀的道長(zhǎng)桌粉。 經(jīng)常有香客問我,道長(zhǎng)衙四,這世上最難降的妖魔是什么铃肯? 我笑而不...
    開封第一講書人閱讀 56,427評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮传蹈,結(jié)果婚禮上押逼,老公的妹妹穿的比我還像新娘。我一直安慰自己惦界,他們只是感情好挑格,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,467評(píng)論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著沾歪,像睡著了一般漂彤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上灾搏,一...
    開封第一講書人閱讀 49,785評(píng)論 1 290
  • 那天挫望,我揣著相機(jī)與錄音,去河邊找鬼狂窑。 笑死媳板,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的泉哈。 我是一名探鬼主播蛉幸,決...
    沈念sama閱讀 38,931評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼丛晦!你這毒婦竟也來了奕纫?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,696評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤烫沙,失蹤者是張志新(化名)和其女友劉穎匹层,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體斧吐,經(jīng)...
    沈念sama閱讀 44,141評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡又固,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,483評(píng)論 2 327
  • 正文 我和宋清朗相戀三年仲器,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了煤率。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,625評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡乏冀,死狀恐怖蝶糯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情辆沦,我是刑警寧澤昼捍,帶...
    沈念sama閱讀 34,291評(píng)論 4 329
  • 正文 年R本政府宣布识虚,位于F島的核電站,受9級(jí)特大地震影響妒茬,放射性物質(zhì)發(fā)生泄漏担锤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,892評(píng)論 3 312
  • 文/蒙蒙 一乍钻、第九天 我趴在偏房一處隱蔽的房頂上張望肛循。 院中可真熱鬧,春花似錦银择、人聲如沸多糠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)夹孔。三九已至,卻和暖如春析孽,著一層夾襖步出監(jiān)牢的瞬間搭伤,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工袜瞬, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留闷畸,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓吞滞,卻偏偏與公主長(zhǎng)得像佑菩,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子裁赠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,492評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容