當前位置:首頁 » 安卓系統 » android解析度密度

android解析度密度

發布時間: 2022-09-06 03:48:25

A. android webview默認屏幕為中像素密度怎麼修改

Android中Webview載入的頁面居中顯示為中等像素密度的方法如下:

第一種方法:

WebSettings settings = webView.getSettings();
settings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
LayoutAlgorithm是一個枚舉用來控制頁面的布局,有三個類型:

1.NARROW_COLUMNS:可能的話使所有列的寬度不超過屏幕寬度

2.NORMAL:正常顯示不做任何渲染

3.SINGLE_COLUMN:把所有內容放大webview等寬的一列中

用SINGLE_COLUMN類型可以設置頁面居中顯示,頁面可以放大縮小

第二種方法:

//設置載入進來的頁面自適應手機屏幕
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);
第一個方法設置webview推薦使用的窗口,設置為true。第二個方法是設置webview載入的頁面的模式,也設置為true。這方法可以讓你的頁面適應手機屏幕的解析度,完整的顯示在屏幕上,可以放大縮小。

第三種方法:(主要用於平板,針對特定屏幕代碼調整解析度)

java">DisplayMetricsmetrics=newDisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
intmDensity=metrics.densityDpi;

if(mDensity==120){
settings.setDefaultZoom(ZoomDensity.CLOSE);
}elseif(mDensity==160){
settings.setDefaultZoom(ZoomDensity.MEDIUM);
}elseif(mDensity==240){
settings.setDefaultZoom(ZoomDensity.FAR);
}

Android中的webview其實是一個瀏覽器,對js進行解析以便於在智能機上面很好的顯示。

B. android多屏幕解析度適配問題

屏幕大小(screen size) – 屏幕的實際大小,用屏幕對角線長度來衡量(比如3.4寸,3.8寸)。android把屏幕分為以下4種:small,normal,large,extra large。
怎麼判斷?
屏幕密度(Screen Density) - 一塊實際的屏幕區域有多少個像素,一般用dpi衡量(每英寸有多少個點)。相比起medium、high屏幕密度的設備,在一塊確定大小的屏幕區域l密度為low的屏幕擁有的像素更少。android把屏幕密度分為4種:low,medium,high,extra high。
如何判斷是ldpi,mdpi,hdpi?
方向(orientation) - 屏幕方向分為landscape(橫屏)和portrait(豎屏)。
解析度(Resolution) - 屏幕上的總實際像素數。對屏幕進行適配時,一般不關注它的解析度,只關注它的屏幕大小和密度。
與密度無關的像素(Density-independent pixel,dp或dip) - 為了保證你的UI適合不同的屏幕密度,建議你採用dp來定義程序UI。
它的計算方法為:px = dp * (dpi / 160)
sp(scale-independent pixel)

C. Android設備的屏幕像素密度和720P,1080P的關系是怎麼樣的

首先看下像素密度PPI的公式:

你的屏幕解析度是width*height(1920*1080),

設備是size(5)寸,那麼像素密度是:

(440PPI)

PPI越高表明你的屏幕越清晰。

結論:

所以1080P並不一定比720P的就清晰,這個和你的設備尺寸是有關系的。

如果一台機器是60英寸,1080P,而另外一台是5寸720p你會看到60寸的電視上面全是像素點。而5寸覺得不會看到。


D. 怎麼查看android設備 解析度

為解決Android設備碎片化,引入一個概念density,也就是密度.它指的是在一定尺寸的物理屏幕上顯示像素的數量,一般使用dpi(dots per inch,每英寸像素數)作為單 位.比如設備解析度為240x320,屏幕物理尺寸為1.5英寸x2英寸(對角線為2.5)它的密度可以用解析度/尺寸表示:240/1.5或者即320/2,密度為160dpi。算對角線也是一樣 的,長的平方+寬的平方=160000,開方後=400.可知400/2.5=160.對於用戶來說,密度越大的屏幕顯示效果越精細,因為每英寸顯示的像素數量更多。 以上的描述就是一個藍本(此藍本對應於mdpi). 按照此藍本一個dp相當於160dpi屏幕中的一個px.同理在,在320dpi的屏幕中,一個dp相當於2個px. 通過這樣的成比例放縮,Android解決了需要多個不同屏幕中的大小顯示問題. 所以在Eclipse的布局文件中,以3.7in WVGA(Nexus One)(480x800)為例,可以看見其為sw320dp,h533dp. 即寬有320dp,高為533dp. 是怎麼計算出來的呢? 將(480的平方+800的平方)開方=932.9523031 然後932.9523031/屏幕尺寸3.7=252.14927,此結果為此手機的屏幕密度. 然後按照上面的藍本,就應該要計算在該手機上1dp對於多少px.計算如下: 160 1dp=1px 252.14927 1dp=?px 結果為: 252.14927/160=1.5759329 注意: 在此一般不取1.5759329,只取到1.5即可. 所以:480/1.5=320;800/1.5=533.3333(通常取為533),即上述的sw320dp,h533dp. 手機屏幕密度的對應關系 120上下浮動的都屬於ldpi 160上下浮動的都屬於mdpi 240上下浮動的都屬於hdpi 320上下浮動的都屬於xdpi 以摩托羅拉ME525+(3.7英寸 解析度854x480像素)為例: 將(480的平方+854的平方)開方=979.6509 然後979.6509/屏幕尺寸3.7=264.770529,此結果為此手機的屏幕密度.對應為hdpi 264.770529/160=1.6548 即在此手機中1dp=1.6548個像素,只取到1.6即可 所以:480/1.6=300;854/1.6=533.75(通常取為533) 按照這個邏輯,算出來的寬應該是只有300dp.悲劇的是,如果某個控制項的寬為300,在此手機上是不能鋪滿手機的寬的. 也就是說除以的不是1.6而還是1.5!!!!所以將寬設置為320即可 總結:在hdpi中,像素轉換為dp統一用的是:像素/1.5 以聯想K860(5.0英寸,解析度1280x720像素)為例: 將(1280的平方+720的平方)開方=1468.60478 然後1468.60478/屏幕尺寸5=293.720,此結果為此手機的屏幕密度.對應為xdpi 293.720/160=1.8357 即在此手機中1dp=1.8357個像素 所以:1280/1.8357=697.281;720/1.8357=392.22 按照這個邏輯,算出來的寬應該是392.22.悲劇的是,如果某個控制項的寬為392.22,在此手機上是顯示不完全的. 也就是說除以的不是1.8而是2!!!!所以將寬設置為360即可 總結:在xdpi中,像素轉換為dp統一用的是:像素/2 注意問題1: 在建立模擬器的時候注意 854x480在Hardware中,應該將Abstracted LCD density設置為240,並手動輸入解析度 1280x720在Hardware中,應該將Abstracted LCD density設置為320,並手動輸入解析度 注意問題2: 多個layout文件夾在命名上有相應規則,以解析度480x854為例,需要建立480x854像素的layout文件夾,命名:layout-854x480,有兩點需要注意:①大數(854)必須在前, 否則會報錯;②兩個數字之間的符號是小寫英文字母“x”,不是乘號

E. android中的屏幕密度是否和屏幕解析度無關

跟解析度有關系。3.2寸的480*800解析度屏幕,跟4.7寸的480*800解析度的屏幕對比,顯然3.2更細膩。蘋果的3.5寸640*960解析度屏幕,就是這個原因,肉眼無法看到顆粒感。還有就是像素排列,i9000的屏幕,是五宮格樣式的排列,沒有普通縱向、橫向細膩。

F. Android 中8dp是多少毫米

DP是最常用但也最難理解的尺寸單位。它與「像素密度」密切相關,所以首先我們解釋一下什麼是像素密度。假設有一部手機,屏幕的物理尺寸為1.5英
寸x2英寸,屏幕解析度為240x320,則我們可以計算出在這部手機的屏幕上,每英寸包含的像素點的數量為240/1.5=160dpi(橫向)或
320/2=160dpi(縱向),160dpi就是這部手機的像素密度,像素密度的單位dpi是Dots Per
Inch的縮寫,即每英寸像素數量。橫向和縱向的這個值都是相同的,原因是大部分手機屏幕使用正方形的像素點。不同的手機/平板可能具有不同的像素密度,例如同為4寸手機,有480x320解析度的也有800x480解析度的,前者的像素密度就比較低。
Android系統定義了四種像素密度:低(120dpi)、中(160dpi)、高(240dpi)和超高(320dpi),它們對應的dp到px的系
數分別為0.75、1、1.5和2,這個系數乘以dp長度就是像素數。例如界面上有一個長度為「80dp」的圖片,那麼它在240dpi的手機上實際顯示
為80x1.5=120px,在320dpi的手機上實際顯示為80x2=160px。如果你拿這兩部手機放在一起對比,會發現這個圖片的物理尺寸「差不
多」,

G. Android 屏幕適配

1: dp: android 尺寸的基本單位。 在不同的解析度的手機裡面,1dp對應著不同數量的px, 這樣就實現了dp定義一個控制項大小的時候,在不同解析度手機里表現出相應大小的像素值。
2: 屏幕解析度: 1080下160, 表示寬度有1080個像素點而高度有2160個像素點。常見的解析度有320x480, 480x800, 720x1280, 1080x1920等。
3: 屏幕尺寸: 以寸為單位, Android設備對角線的長度
4: 像素密度: 每英寸的像素點
5: 屏幕尺寸, 解析度,像素密度 三者之間的關系:
密度(dpi)= √(寬2 + 高2)/屏幕尺寸

6: px:像素,是屏幕上顯示數據的最基本的點
7: dpi:屏幕像素密度,每英寸上的像素點數
8: sp:與dp類似,通常用於指定字體的大小,當用戶修改手機顯示的字體時,字體大小會隨之改變。

1: dp適配方案: Android自帶的原始的適配方案, 在不同的解析度手機裡面表現出相應大小的像素點。
缺點: Android的碎片化嚴重, 如果生產廠家沒有根據屏幕尺寸、解析度和像素密度的關系來規則定義, 或者出一些亂七八糟的屏幕大小,這樣的適配方案就不在適合了。

2: 寬高限定符:枚舉所有的屏幕寬高像素值,根據等比縮放去適配。如果沒有找到對應的屏幕, 則取默認的。 目前這種方案已經被棄用。

缺點:
1: 佔用資源大,會增加APK的體積。
2: 容錯機制大需要精準命中資源文件才能適配,比如1920x1080的手機就一定要找到1920x1080的限定符,否則就只能用統一的默認的dimens文件了。而使用默認的尺寸的話,UI就很可能變形。

3:AndroidAutoLayout適配方案(停止維護)

4: SW限定符適配方案:(smallestWidth最小寬度適配)
Android 會去識別屏幕可用高度或者寬度的最小尺寸的dp值。然後根據識別到的結果去對應的資源文件裡面去找尋相應的結果。
如何生成:ScreenMatch插件

此方案跟寬高限定的適配方案相比,有很好的容錯機制, 如果沒有找到對應的適配寬度, 那麼會在vlues文件裡面去找跟他最接近的寬度。

5:今日頭條適配方案:
1>: px 轉 dp 的公式 dp = px / density.不管我們設定的單位是什麼, 最終我們都會將這些單位長度轉化為px的。density就是他們的轉化比, 所以,動態改變這個轉化比也是可以達到我們適配屏幕的目的的。
2>: 通過修改density值,強行把所有不同尺寸解析度的手機的寬度dp值改成一個統一的值(在清單文件中定義),這樣就解決了所有的適配問題。
3>: Density = 當前設備屏幕總寬度(單位為像素)/ 設計圖總寬度(單位為 dp) ;
4>:引入了AndroidAutoSize屏幕適配框架:
https://github.com/JessYanCoding/AndroidAutoSize

最後, 最重要的................
點贊 點贊 點贊, 不重要的事情也就說3遍......

H. android中怎麼實現手機不同解析度訪問的效果

android中不同手機解析度適配問題
在項目開發的過程中,同一個布局對應不同的手機會顯示出不同的效果。導致這個現象產生的原因是不同手機的解析度不同。在android sdk提供的幫助文檔中,我們可以看到各種手機的解析度和對應的屏大小。QVGA (240x320),WQVGA400(240x400),WQVGA432 (240x432),HVGA (320x480),WVGA800 (480x800),WVGA854 (480x854)。
目前android手機的解析度大致就是幫助文檔中描述的幾種。我們可以用兩種方式進行不同手機的適配。一種是在java代碼中,另外一種是在xml文件中。具體使用哪種方式更有效更合適,要看具體的情況而定。
在以前的項目中,我之前做過關於歷史聊天記錄,每頁顯示條數的匹配。不同的手機,每頁可以顯示歷史記錄的條數是不同的。我採用的是在java代碼中做匹配。不同解析度的手機,他們都有固定的屏高。例如,480x800,屏高是800。240x320,屏高是320。根據屏高為判定條件,為每一頁顯示歷史記錄的條數做一個限制。我個人覺得,在java代碼中做手機匹配,要看匹配的布局中,控制項是否太多,不太多,可以在java代碼中根據不同的情況修改,否則,java代碼將會顯得很冗長,修改起來也很麻煩。
在xml進行手機匹配,主要是針對布局中控制項太多,不方便在java代碼中修改的情況。在xml中解決不匹配問題很簡單,對於不同手機的解析度,建立對應的layout文件即可。例如:480x800,之間建立layout-800x400,240x320,建立layout-320x240。特別注意:大的寫在前面,例如800,320,小的寫在後面,例如480,240。建立了相應的layout後,還要在不同的手機上調整布局中的控制項大小和位置。
在本次項目中,我負責不同手機視圖的匹配問題,我選擇的是xml匹配方式,結果發現按上面的方式做了之後,對應解析度的手機的顯示沒有任何的效果,後來,我查看幫助文檔後,發現必須要在androidmainfest中進行如下代碼的配置:
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true" />
如果沒有這幾行代碼,不管你怎麼調整layout中的控制項,對應解析度的手機是沒有任何效果的。注意:由於android版本的不同,有些版本不支持xlargeScreens,可以直接將android:xlargeScreens="true"去掉。
來源:

android屏幕解析度適配
1. 多解析度支持
在設計之初,Android系統就被設計為一個可以在多種不同解析度的設備上運行的操作系統。對於應用程序來說,系統平台向它們提供的是一個穩定的,跨平台的運行環境,而關於如何將程序以正確的方式顯示到它所運行的平台上所需要的大部分技術細節,都由系統本身進行了處理,無需程序的干預。當然,系統本身也為程序提供了一系列API,所以在目標平台的解析度是可以完全確定的情況下,程序也可以精確的控制自身在目標平台上的界面顯示方式。
這個文檔會說明系統平台究竟提供了哪些解析度支持特性,與它們如何在程序中使用的信息。如果你遵循文檔中列出的方法,就很容易讓你的程序在所有支持的解析度下都能完美顯示。這樣你就可以用一個單獨的.apk文件,將你的程序發布到所有的平台上。
如果你已經發布過針對Android 1.5或更早版本平台的程序,你應該仔細閱讀這篇文檔,然後考慮一下到底如何讓自己的老程序可以在擁有各種不同解析度,並且運行著Android 1.6或更新平台上正常顯示。在絕大部分情況下,只需要對程序作出小小的修改就可以達到目的,但你仍然需要盡可能地在各種解析度的平台上進行測試。
特別的,如果你有一個已經完成的程序,又想讓它可以在超低解析度的設備(比如320×240)上正確運行,你需要閱讀「老程序的更新策略」,那篇文檔會告訴你應該怎麼做。
2. 術語和概念
屏幕尺寸
屏幕的物理尺寸,以屏幕的對角線長度作為依據(比如2.8寸,3.5寸)。
簡而言之,Android把所有的屏幕尺寸簡化為三大類:大,中,小。
程序可以針對這三種尺寸的屏幕提供三種不同的布局方案,然後系統會負責把你的布局方案以合適的方式渲染到對應的屏幕上。這個過程是不需要程序員用代碼來干預的。
屏幕長寬比
屏幕的物理長度與物理寬度的比例。程序可以為制定長寬比的屏幕提供製定的素材,只需要用系統提供的資源分類符long和notlong。
解析度
屏幕上擁有的像素的總數。注意,雖然大部分情況下解析度都被表示為「寬度×長度」,但解析度並不意味著屏幕長寬比。在Android系統中,程序一般並不直接處理解析度。
密度
以屏幕解析度為基礎,沿屏幕長寬方向排列的像素。
密度較低的屏幕,在長和寬方向都只有比較少的像素,而高密度的屏幕通常則會有很多——甚至會非常非常多——像素排列在同一區域。屏幕的密度是非常重要的,舉個例子,長寬以像素為單位定義的界面元素(比如一個按鈕),在低密度的屏幕上會顯得很大,但在高密度的屏幕上則會顯得很小。
密度無關的像素(DIP)
指一個抽象意義上的像素,程序用它來定義界面元素。它作為一個與實際密度無關的單位,幫助程序員構建一個布局方案(界面元素的寬度,高度,位置)。
一個與密度無關的像素,在邏輯尺寸上,與一個位於像素密度為160DPI的屏幕上的像素是一致的,這也是Android平台所假定的默認顯示設備。在運行的時候,平台會以目標屏幕的密度作為基準,「透明地」處理所有需要的DIP縮放操作。要把密度無關像素轉換為屏幕像素,可以用這樣一個簡單的公式:pixels = dips * (density / 160)。舉個例子,在DPI為240的屏幕上,1個DIP等於1.5個物理像素。我們強烈推薦你用DIP來定義你程序的界面布局,因為這樣可以保證你的UI在各種解析度的屏幕上都可以正常顯示。
支持的屏幕解析度范圍
1.5及更早版本的Android系統,在設計的時候假定系統只會運行在一種解析度的設備上——HVGA(320×480)解析度,尺寸為3.2寸。由於系統只能工作在一種屏幕上,開發人員就可以針對那個屏幕來編寫自己的程序,而無需去考慮程序在其他屏幕上的顯示問題。
但自從Android 1.6以來,系統引入了對多種尺寸、多種解析度屏幕的支持,以此滿足擁有各種配置的新平台的運行需求。這就意味著開發人員在針對Android 1.6或更新版系統開發程序的時候,需要為自己的程序在多種解析度的屏幕上良好顯示作出額外的設計。
為了簡化程序員面在對各種解析度時的困擾,也為了具備各種解析度的平台都可以直接運行這些程序,Android平台將所有的屏幕以密度和解析度為分類方式,各自分成了三類:
·三種主要的尺寸:大,正常,小;
·三種不同的密度:高(hdpi),中(mdpi)和低(ldpi)。
如果需要的話,程序可以為各種尺寸的屏幕提供不同的資源(主要是布局),也可以為各種密度的屏幕提供不同的資源(主要是點陣圖)。除此以外,程序不需要針對屏幕的尺寸或者密度作出任何額外的處理。在執行的時候,平台會根據屏幕本身的尺寸與密度特性,自動載入對應的資源,並把它們從邏輯像素(DIP,用於定義界面布局)轉換成屏幕上的物理像素。
下表列出了Android平台支持的屏幕中一些比較常用的型號,並顯示了系統是如何把它們分類到不同的屏幕配置里的。有些屏幕解析度並不在下面的列表上,但系統仍會把它們歸入下列的某一個類型中。
低密度(120),ldpi
中密度(160),mdpi
高密度(240),hdpi
小屏幕
·QVGA(240×320),2.6~3.0寸
普通屏幕
·WQVGA(240×400),3.2~3.5寸
·FWQVGA(240×432),3.5~3.8寸
·HVGA(320×480),3.0~3.5寸
·WVGA(480×800),3.3~4.0寸
·FWVGA(480×854),3.5~4.0寸
大屏幕
·WVGA(480×800),4.8~5.5寸
·FWVGA(480×854),5.0~5.8寸
如上表所示,所有解析度的屏幕,都圍繞在基準屏幕周圍,而基準屏幕在分類中,為「正常」尺寸,與「中」密度。之所以用HVGA屏幕作為基準屏幕,是因為所有針對Android 1.5或更早的程序都是針對這片屏幕所寫的(因為只支持這一片),比如T-Mobile G1。
雖然系統支持上面9種不同配置的屏幕,但你並不一定需要為它們都提供各自不同的資源。系統已經提供了足夠魯棒(就是在各種惡劣環境下正常工作,對環境變化不敏感)的兼容特性,用於在各種不同的屏幕上良好顯示你的程序。這在下面的文檔中會詳細描述,如果你需要更多的資料,請查看「與屏幕無關的最佳實踐」。
作者「Ant space」

I. Android的px,dp和sp等單位的區別詳解

px:

即像素,1px代表屏幕上一個物理的像素點;
px單位不被建議使用,因為同樣100px的圖片,在不同手機上顯示的實際大小可能不同

dp:

這個是最常用但也最難理解的尺寸單位。它與「像素密度」密切相關,所以首先我們解釋一下什麼是像素密度。假設有一部手機,屏幕的物理尺寸為1.5英寸x2英寸,屏幕解析度為240x320,則我們可以計算出在這部手機的屏幕上,每英寸包含的像素點的數量為240/1.5=160dpi(橫向)或320/2=160dpi(縱向),160dpi就是這部手機的像素密度,像素密度的單位dpi是Dots Per Inch的縮寫,即每英寸像素數量。橫向和縱向的這個值都是相同的,原因是大部分手機屏幕使用正方形的像素點。
不同的手機/平板可能具有不同的像素密度,例如同為4寸手機,有480x320解析度的也有800x480解析度的,前者的像素密度就比較低。
Android系統定義了四種像素密度:低(120dpi)、中(160dpi)、高(240dpi)和超高(320dpi),它們對應的dp到px的系數分別為0.75、1、1.5和2,這個系數乘以dp長度就是像素數。
例如界面上有一個長度為「100dp」的圖片,那麼它在240dpi的手機上實際顯示為80x1.5=120px,在320dpi的手機上實際顯示為80x2=160px。如果你拿這兩部手機放在一起對比,會發現這個圖片的物理尺寸「差不多」,這就是使用dp作為單位的效果。

dip:

與dp完全相同,只是名字不同而已。在早期的Android版本里多使用dip,後來為了與sp統一就建議使用dp這個名字了。
sp:
與縮放無關的抽象像素(Scale-independent Pixel)。sp和dp很類似但唯一的區別是,Android系統允許用戶自定義文字尺寸大小(小、正常、大、超大等等),當文字尺寸是「正常」時1sp=1dp=0.00625英寸,而當文字尺寸是「大」或「超大」時,1sp>1dp=0.00625英寸。類似我們在windows里調整字體尺寸以後的效果——窗口大小不變,只有文字大小改變。
還有幾個比較少用到的尺寸單位:
mm:
即毫米;
in:
即英寸,1英寸=2.54厘米(約);
pt:
1pt=1/72英寸=0.035厘米;
最佳實踐,文字的尺寸一律用sp單位,非文字的尺寸一律使用dp單位。例如textSize="16sp"、layout_width="60dp";偶爾需要使用px單位,例如需要在屏幕上畫一條細的分隔線時:
<View layout_width="match_parent" layout_height="1px"/>

補充:
1. android.view.ViewGroup.LayoutParams.height及width這兩個屬性的單位為像素,但是為了兼容多種解析度的手機,我們需要最好使用dp。
2. 根據手機的解析度從dp的單位轉成px
public static int dip2px(Context context, float dpValue){
final float scale = context.getResources().getDisplayMetrics().density;
return (int)(dpValue*scale + 0.5f);
}
3.根據手機的解析度從px轉成dp
public static int px2dip(Context context, float pxValue){
final float scale = context.getResources().getDisplayMetrics().density;
return (int)(pxValue/scale + 0.5f);
}

熱點內容
雲隙伺服器下載 發布:2024-05-19 04:33:22 瀏覽:312
德國C語言 發布:2024-05-19 04:13:40 瀏覽:959
音頻管理器沒有文件夾 發布:2024-05-19 04:13:36 瀏覽:666
qq郵箱埠993伺服器怎麼填 發布:2024-05-19 04:07:05 瀏覽:202
javaapi框架 發布:2024-05-19 04:06:59 瀏覽:359
與存儲結構無關的術語 發布:2024-05-19 04:05:41 瀏覽:499
編譯路由器固件選擇 發布:2024-05-19 03:56:28 瀏覽:39
手機f加密 發布:2024-05-19 03:28:47 瀏覽:225
用什麼密碼寫日記 發布:2024-05-19 03:27:57 瀏覽:303
資料庫access2003 發布:2024-05-19 02:49:39 瀏覽:620