0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

android系統(tǒng)怎么支持多種屏幕

電子設(shè)計(jì) ? 來(lái)源:工程師曾玲 ? 2019-10-03 16:12 ? 次閱讀

支持多種屏幕

android運(yùn)行在不同尺寸和像素(密度)的設(shè)備上,android系統(tǒng)給應(yīng)用程序提供了一個(gè)相同的環(huán)境去適應(yīng)不同的UI顯示界面。同時(shí)系統(tǒng)提供API讓?xiě)?yīng)用程序去控制UI在不同尺寸和密度的屏幕上的顯示效果,因?yàn)槲覀兛隙ú幌M?a target="_blank">手機(jī)和平板上顯示一樣的效果。

盡管android系統(tǒng)會(huì)自動(dòng)縮放你的應(yīng)用程序以適應(yīng)不同分辨率,但是你也必須針對(duì)不同尺寸和密度的屏幕盡量?jī)?yōu)化,只有這樣才能最大程度上獲得較好的用戶體驗(yàn)。

概念

1.屏幕尺寸(Screen size):也就是我們常聽(tīng)到的iphone4 3.5寸 iphone4s 4寸 samsung s2 4.3寸 HTC butterfly 5寸等等,也就是屏幕的對(duì)角線長(zhǎng)度,

然后你可以根據(jù)屏幕的長(zhǎng)寬比計(jì)算長(zhǎng)寬的尺寸(android 將這些分為四個(gè)等級(jí),分別是small,normal, large, 和 extralarge)

2.像素密度(dpi):每英寸屏幕含有的像素點(diǎn)個(gè)數(shù) (android 也按照像素密度分了四個(gè)等級(jí),分別是low,medium, high, 和 extrahigh)

3.方向(Orientation):分水平和垂直,如果應(yīng)用做的好的話,這兩個(gè)方向都要考慮

4.分辨率(pix):也就是整個(gè)屏幕有多少個(gè)像素點(diǎn)組成,如果想應(yīng)用程序支持不同的屏幕,那應(yīng)用程序絕對(duì)不能直接根據(jù)分辨率作為單位來(lái)布局,而是應(yīng)該

通過(guò)屏幕尺寸和像素密度中設(shè)定的等級(jí)來(lái)區(qū)分

5.像素?zé)o關(guān)密度(dp/dip): 一個(gè)android定義的虛擬的像素單位,你的應(yīng)用程序應(yīng)該用此單位來(lái)定義布局大小和位置

注意,一個(gè)dp和一個(gè)大小為160dpi的屏幕中的一個(gè)像素是相等的,所以dp和pix的換算應(yīng)該是這樣的real pix =dp * (dpi)/160

當(dāng)你寫(xiě)布局文件的時(shí)候可以根據(jù)這個(gè)公式大概估算一下

(如800*480 4寸屏,計(jì)算像素密度dpi = 根號(hào)[寬的平方 + 高的平方]/屏幕尺寸,

大概算一下是240dpi左右,也就是說(shuō)你定義了一個(gè)button是100dp 寬,100dp高那么實(shí)際就是100*240/160 = 150 pix 了,也就是說(shuō)你這個(gè)button占據(jù)了屏幕的150/800 +150/480 ,

如1920*1080 5寸屏,計(jì)算像素密度dpi = 根號(hào)[寬的平方 + 高的平方]/屏幕尺寸,大概算一下是440dpi左右,也就是說(shuō)你定義了一個(gè)button是100dp 寬,100dp高那么實(shí)際就是100*440/160 = 275 pix 了,也就是說(shuō)你這個(gè)button占據(jù)了屏幕的275/1920 +275/1080 。

當(dāng)然這兩款手機(jī)上的顯示效果還是有些差距的,計(jì)算了一下前者的button寬占據(jù)了整個(gè)屏幕寬度的0.1875 而后者的button寬占據(jù)了整個(gè)屏幕的0.1432。

可以看出來(lái)前者占據(jù)的位置要大一些,這樣看起來(lái)在不同分辨率和大小的手機(jī)上效果就不太一樣了。其原因在于后者的分辨率比前者大很多,但是尺寸僅僅大了一寸,這也跟廠家的定位有關(guān)系吧,尺寸小其實(shí)是根本沒(méi)必要弄太大的分辨率的,因?yàn)楦究床怀鲂Ч麃?lái)。因此我們有必要對(duì)不同尺寸的定義不同的布局文件!!!

android系統(tǒng)怎么支持多種屏幕

比如上面的4寸和5寸應(yīng)該定義兩個(gè)layout,layout定義button的長(zhǎng)寬為100dp,layout-large 定義button的長(zhǎng)寬大概為131dp ;

131*440/160 = 360 ,360/1920 = 0.1875 這樣就和在寸屏幕中所占的比例相同了

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    3937

    瀏覽量

    127504
  • Layout
    +關(guān)注

    關(guān)注

    14

    文章

    405

    瀏覽量

    61832
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    PCM2707C是否支持Android系統(tǒng)?PCM2707C Android應(yīng)用層怎么寫(xiě)?

    有如下兩個(gè)問(wèn)題,幫忙看看,謝謝! 1,PCM2707C是否支持Android系統(tǒng) 2,PCM2707C Android應(yīng)用層怎么寫(xiě)?如何獲取USB上的音頻數(shù)據(jù)。
    發(fā)表于 10-30 07:46

    【分享】迅為iTOP4412開(kāi)發(fā)板-Android系統(tǒng)屏幕旋轉(zhuǎn)設(shè)置

    桌面后你是感覺(jué)不到旋轉(zhuǎn)動(dòng)作的,比較適合產(chǎn)品應(yīng)用,另外配置項(xiàng)旋轉(zhuǎn)目前暫不支持180度,僅支持0,90,270度三個(gè)角度的旋轉(zhuǎn)。以上是屏幕旋轉(zhuǎn)的兩種方式,這里屏幕旋轉(zhuǎn)不考慮重力傳感器的因素
    發(fā)表于 07-30 14:21

    zigbee對(duì)android支持

    請(qǐng)問(wèn)目前TI的zigbee SOC解決方案哪些是支持android系統(tǒng),在android下提供哪些接口,哪里可以找到資料
    發(fā)表于 06-21 11:55

    請(qǐng)問(wèn)iTOP4418開(kāi)發(fā)板7寸屏幕Android系統(tǒng)下橫豎屏怎么設(shè)置?

    ` Android系統(tǒng)屏幕旋轉(zhuǎn)設(shè)置平臺(tái): 1. Androd4.4源碼可以編譯成手機(jī)模式和平板模式,訊為iTop4418 開(kāi)發(fā)平臺(tái)的Android
    發(fā)表于 06-27 14:25

    基于Android平臺(tái)怎么為多種移動(dòng)客戶端提供即時(shí)通信服務(wù)?

    核心是基于開(kāi)源的WebKit 引擎, 對(duì)基于HTML 的各種語(yǔ)言具有良好的支持。圖像引擎使用基于openGLES1. 0 的三維圖形庫(kù)。本文的研究目的就是基于Android 平臺(tái), 提出一種能為多種移動(dòng)客戶端提供即時(shí)通信服務(wù)
    發(fā)表于 03-18 07:17

    瑞芯微RK3399支持多種屏幕接口如何進(jìn)行屏幕切換控制

    動(dòng)態(tài)控制、內(nèi)核設(shè)備樹(shù)指定。屏幕切換飛凌RK3399系列主板支持MIPI DSI、HDMI、eDP、DP等多種屏幕接口,同時(shí)可以進(jìn)行兩個(gè)屏幕
    發(fā)表于 08-19 17:11

    RK3399在Android支持屏幕拼接顯示嗎

    RK3399/RK3399Pro系列主板和核心板在Android支持屏幕拼接顯示嗎?
    發(fā)表于 02-11 08:20

    怎樣通過(guò)使用屏幕+觸摸的方式來(lái)體驗(yàn)Android 8.1系統(tǒng)

    怎樣通過(guò)使用屏幕+觸摸的方式來(lái)體驗(yàn)Android 8.1系統(tǒng)呢?
    發(fā)表于 03-04 08:17

    基于Android屏幕水霧手機(jī)游戲的設(shè)計(jì)方案

    隨著Android 手機(jī)系統(tǒng)的普及,各種Android 應(yīng)用程序如雨后春筍般一下多了起來(lái)?!?b class='flag-5'>屏幕水霧”是基于Android 平臺(tái)開(kāi)發(fā)的手機(jī)游
    發(fā)表于 03-19 10:53 ?1912次閱讀
    基于<b class='flag-5'>Android</b>的<b class='flag-5'>屏幕</b>水霧手機(jī)游戲的設(shè)計(jì)方案

    基于Android的全屏幕適配方案

    由于Android碎片化嚴(yán)重,屏幕適配一直是開(kāi)發(fā)中較為頭疼的問(wèn)題。面對(duì)市面上五花八門的屏幕大小與分辨率, Android基于dp與res目錄名稱來(lái)適配的方案已無(wú)法滿足一次編寫(xiě)全
    發(fā)表于 05-04 08:41 ?1986次閱讀

    AndroidQ將支持原生大屏幕的桌面模式

    近日,XDA論壇大佬從Android Q測(cè)試版中挖掘出了一個(gè)全新的功能——原生大屏幕的桌面模式。
    的頭像 發(fā)表于 05-13 10:28 ?2043次閱讀

    Discord現(xiàn)已支持iOS和Android設(shè)備上的屏幕分享功能

    熱門社交聊天應(yīng)用 Discord 剛剛宣布了一項(xiàng)功能更新,為 Android 和 iOS 客戶端引入了用戶急需的屏幕分享功能。即日起,Discord 用戶將能夠高效捕獲手機(jī)屏幕上顯示的內(nèi)容,并流式
    的頭像 發(fā)表于 12-17 10:37 ?2549次閱讀

    Android12有望支持屏幕隨面部旋轉(zhuǎn)功能

    據(jù)外媒TomsGuide報(bào)道,Android12將有望支持屏幕隨面部旋轉(zhuǎn)功能。該功能能夠通過(guò)檢測(cè)面部方向來(lái)實(shí)現(xiàn)自動(dòng)旋轉(zhuǎn)屏幕,解決用戶躺床上玩手機(jī)時(shí)
    的頭像 發(fā)表于 02-19 09:23 ?1251次閱讀

    Android 開(kāi)發(fā)最新進(jìn)展 | 2022 Android 開(kāi)發(fā)者峰會(huì)重點(diǎn)回顧

    作者 /?Matthew McCullough,Android 開(kāi)發(fā)者團(tuán)隊(duì)產(chǎn)品管理副總裁 近期, Android 開(kāi)發(fā)者峰會(huì) 已在舊金山灣區(qū)拉開(kāi)了序幕。在峰會(huì)中,我們介紹了多種幫助大家利用 現(xiàn)代
    的頭像 發(fā)表于 11-14 17:50 ?1070次閱讀

    【技術(shù)分享】快速在SX-3568商顯主板的Android系統(tǒng)上實(shí)現(xiàn)雙屏異顯

    SX-3568系列智慧商顯主板,支持HDMI、eDP、LVDS、MIPI DSI等多種顯示接口,搭載高性能GPU,具備視頻解碼能力,支持4K 60FPS顯示。本次選用HDMI屏幕作為主
    的頭像 發(fā)表于 02-24 12:05 ?1211次閱讀