淺談android怎樣同一時候適配pad和手機

來源:互聯網
上載者:User

標籤:技巧   使用   多少   ble   變數   size   像素   div   系統   

前期的注意事項和技巧

前段時間公司要做的一個android app。同一時候要做到適配pad跟手機。剛開始認為這根本不可能實現,由於我們市場上見到的app都是要兩個版本號碼的,各自是手機版和pad版。

由於手機和螢幕的尺寸相差太大,所以一般都不會說一個app同一時候相容兩個版本號碼。

  為了做到螢幕的相容,所以我專門去網上尋找資料。看看眼下市場上主流的手機尺寸和解析度各自是多少。主要找到的情況例如以所看到的:

而pad的話每一個廠家出產的pad的解析度都會跟手機的一樣,所以能夠先做完手機頁面的適配再考慮pad的頁面適配。

考察了眼下主流手機螢幕解析度和尺寸的分布之後。就得考慮android適配中另外一個重點。就是螢幕的ppi值。所謂的螢幕的ppi值就是:Pixels Per Inch所表示的是每英寸所擁有的像素(Pixel)數目。而android系統預設會依據擷取螢幕的解析度而將螢幕劃分為idpi、mdpi、hdpi、xhdpi、xxhdpi這五個等級,每一個等級都相應相應的ppi值,其相應關係例如以所看到的:

美工一般都會出一套切圖(切圖建議解析度是480x800,這樣網上做頁面適配的相容easy非常多。px和dp的換算倍率剛好也是1:1)和尺寸圖(反正我遇到的美工沒有每種解析度來一套,這樣工作量確實大),而講到尺寸圖。美工在上面標的尺寸一般都是以px為單位的,而在android布局其中我們經經常使用到的單位是dp和sp。這樣我們就得對px和dp進行換算,詳細換算規則能夠看這裡:px和dp的換算規則。

編碼中的注意事項和技巧

上面說了一些頁面適配的一些前期的準備和注意事項,接下來就說一下編碼中的一些頁面適配的注意事項和技巧。1、在xml布局其中,盡量用weight值來均衡分布,盡量少用固定值去定義容器或者控制項的大小。容器建議用fill_parent這類的值。

假設控制項或容器實在沒辦法得使用固定值。那就用固定值。

一般手機都不會走樣。假設出現走樣,那就得在values 、values-ldpi、values-mdpi、values-hdpi、values-xhdpi,依據不同螢幕解析度相應然後在目錄的diamen的檔案中面定義一個變數然後在布局檔案中面引用,


這樣子就能夠對不同解析度的螢幕做適配了。

相容了手機後對pad的適配

因為手機切圖會相對較小,假設pad引用的話就會失真。所以就得找另外一份pad版的切圖和尺寸圖。如今就有兩套切圖。經過實驗發現,android系統是依據螢幕最小寬度來區分手機還是pad的,當螢幕最小寬度>=600px的時候就當做該裝置為pad,當螢幕最小寬度 < 600px的時候就覺得是手機。所以能夠在定義兩種類型的drawable目錄,一個是drawable-sw600dp-hdpi(這個是用來放pad版的切圖),還有一個是drawable-xhdpi(這個是用來放手機版的切圖)。而value目錄也是類似,values-sw600dp(這是放pad版的diamen等檔案)values(這是放手機版的diamen等檔案)。

假設你不知道自己的手機的最小螢幕寬度能夠用以下這段代碼執行在自己手機上查看:

Configuration config = getResources().getConfiguration();        int  smallestScreenWidth = config.smallestScreenWidthDp;
</pre><span style="font-size:18px"><span style="white-space:pre"></span>有時候,有些布局僅僅是有某些解析度有一點點偏差。就能夠在代碼中擷取螢幕最小寬度然後進行微調。</span><pre>

淺談android怎樣同一時候適配pad和手機

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.