導航:首頁 > 操作系統 > android適配不同解析度

android適配不同解析度

發布時間:2022-04-15 11:26:13

① 初學android,問個問題。怎麼樣能讓android的widget適配不同的解析度進行布局呢

xml布局中,採用dp做單位,不用px。就可以解決你的問題。

新的sdk為了適配不同的屏幕解析度的機型,已經陸續取消採用像素px作為布局單位。這主要是針對不同設備而言的。因為px不管在什麼樣的設備上都是那樣長,但是dip會根據設備變化。

這涉及到dp和px的轉換問題。
首先,240*320像素的手機(WQVGA/QVGA)的density=120;
320*480的手機(HVGA)的density=160;
480*800的手機(WVGA)density=240;
轉換公式如下:
pixs =dips * (density/160)
dips=(pixs*160)/density

補充:
px:單位尺寸里的像素點
dp:一個基於density的抽象單位,如果一個160dpi的屏幕,1dp=1px

希望對你有幫助。

② 闡述Android開發中的幾種不同分辯率,圖片不同解析度是怎麼自動適配

wrap_content是包裹住內容,所以你的內容區有多大圖片就會顯示多大區域,如果你的內容區域沒有填充滿窗口圖片肯定是無法全屏的。

③ 怎麼算設置多少 dp 才能讓 Android 適應不同解析度

Android中一個layout想適配各種屏幕尺寸那麼需要按以下規則去寫layout:
1.
盡量使用wrap_content、match_parent、weight
來規定layout的大小。
2.
要確保布局的靈活性並適應各種尺寸的屏幕,應使用
「wrap_content」

「match_parent」
控制某些視圖組件的寬度和高度。
3.
使用
「wrap_content」,系統就會將視圖的寬度或高度設置成所需的最小尺寸以適應視圖中的內容,而
「match_parent」(在低於
API
級別
8
的級別中稱為「fill_parent」)則會展開組件以匹配其父視圖的尺寸。
4.
如果使用
「wrap_content」

「match_parent」
尺寸值而不是硬編碼的尺寸,視圖就會相應地僅使用自身所需的空間或展開以填滿可用空間。此方法可讓布局正確適應各種屏幕尺寸和屏幕方向。
5.
如果某些地方必須要規定控制項的大小,那麼要使用dp
或者
dip單位。
6.
欄位必須使用
sp單位。
7.
將不同的圖片放到不同的drawable目錄下,解析度的匹配規則如下:
drawable-mdpi
320
*
480
drawable-hdpi
480*800
drawable-xhdpi
720
*
1280
drawable-xxhdpi
1080
*
1920
drawable-xxxhdpi
1080+

④ 如何讓Android自適應不同解析度或不同屏幕大小的layout布局

一:不同的layout
Android手機屏幕大小不一,有480x320, 640x360, 800x480.怎樣才能讓App自動適應不同的屏幕呢?
其實很簡單,只需要在res目錄下創建不同的layout文件夾,比如layout-640x360,layout-800x480,所有的layout文件在編譯之後都會寫入R.java里,而系統會根據屏幕的大小自己選擇合適的layout進行使用。
二:hdpi、mdpi、ldpi
在之前的版本中,只有一個drawable,而2.1版本中有drawable-mdpi、drawable-ldpi、drawable-hdpi三個,這三個主要是為了支持多解析度。
drawable- hdpi、drawable- mdpi、drawable-ldpi的區別:
(1)drawable-hdpi裡面存放高解析度的圖片,如WVGA (480x800),FWVGA (480x854)
(2)drawable-mdpi裡面存放中等解析度的圖片,如HVGA (320x480)
(3)drawable-ldpi裡面存放低解析度的圖片,如QVGA (240x320)
系統會根據機器的解析度來分別到這幾個文件夾裡面去找對應的圖片。
更正:應該是對應不同density 的圖片
在開發程序時為了兼容不同平台不同屏幕,建議各自文件夾根據需求均存放不同版本圖片。
[i]備註:三者的解析度不一樣,就像你把電腦的解析度調低,圖片會變大一樣,反之解析度高,圖片縮小。 [/i]
屏幕方向:
橫屏豎屏自動切換:
可以在res目錄下建立layout-port-800x600和layout-land兩個目錄,裡面分別放置豎屏和橫屏兩種布局文件,這樣在手機屏幕方向變化的時候系統會自動調用相應的布局文件,避免一種布局文件無法滿足兩種屏幕顯示的問題。
不同解析度橫屏豎屏自動切換:
以800x600為例
可以在res目錄下建立layout-port-800x600和layout-land-800x600兩個目錄
不切換:
以下步驟是網上流傳的,不過我自己之前是通過圖形化界面實現這個配置,算是殊途同歸,有空我會把圖片貼上來。
還要說明一點:每個activity都有這個屬性screenOrientation,每個activity都需要設置,可以設置為豎屏(portrait),也可以設置為無重力感應(nosensor)。
要讓程序界面保持一個方向,不隨手機方向轉動而變化的處理辦法:
在AndroidManifest.xml裡面配置一下就可以了。加入這一行android:screenOrientation="landscape"。
例如(landscape是橫向,portrait是縱向):
Java代碼:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ray.linkit"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Main"
android:label="@string/app_name"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".GamePlay"
android:screenOrientation="portrait"></activity>
<activity android:name=".OptionView"
android:screenOrientation="portrait"></activity>
</application>
<uses-sdk android:minSdkVersion="3" />
</manifest>
另外,android中每次屏幕的切換動會重啟Activity,所以應該在Activity銷毀前保存當前活動的狀態,在Activity再次Create的時候載入配置,那樣,進行中的游戲就不會自動重啟了!
有的程序適合從豎屏切換到橫屏,或者反過來,這個時候怎麼辦呢?可以在配置Activity的地方進行如下的配置android:screenOrientation="portrait"。這樣就可以保證是豎屏總是豎屏了,或者landscape橫向。
而有的程序是適合橫豎屏切換的。如何處理呢?首先要在配置Activity的時候進行如下的配置:android:configChanges="keyboardHidden|orientation",另外需要重寫Activity的 onConfigurationChanged方法。實現方式如下,不需要做太多的內容:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
// land do nothing is ok
} else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
// port do nothing is ok
}
}
寫一個支持多分辨的程序,基於1.6開發的,建立了三個資源文件夾drawable-hdpi drawable-mdpi drawable-ldpi,裡面分別存放72*72 48*48 36*36的icon圖標文件。當我在G1(1.5的系統)上測試時,圖標應該自適應為48*48才對啊,但實際顯示的是36*36。怎麼才能讓其自適應 48*48的icon圖標呢
解決辦法 drawable-hdpi drawable-mdpi drawable-ldpi改成drawable-480X320 drawable-800X480的多分辨支持的文件夾

⑤ android 游戲是怎麼適配解析度的

液晶顯示器下面有一個auto按鍵,就是自動調整,按一下,應該就能解決了!或者把游戲的解析度調整成適合屏幕比例的!

⑥ android開發,html5頁面怎麼適配不同手機解析度

按照比較普遍的最低解析度寫 其他的 兩邊留空白唄

⑦ 安卓app設計屏幕解析度適配問題怎麼解決

要解決這個問題,就要先知道屏幕適配的原理

不同解析度對應的文件夾

首先我們知道android工程目錄res下有四個文件夾,drawable-hdpi、drawable-mdpi、drawable-ldpi、drawable-xhdpi,主要是為了支持多解析度的圖片。如果你製作的游戲切圖是480x800的切圖,就應該放到drawable-hdpi目錄下,如果是320x480的切圖,就應該放到mdpi目錄下。如果是720x1280的,通常會放到xhdpi目錄下。

圖片預設時的處理方式

安卓系統在載入圖片的時候有一套嚴格的規則,它會事先判斷手機屏幕的解析度,然後根據解析度去載入對應文件夾里的圖片。如果找不到,則會從drawable或者其他drawable-*文件夾中尋找。找到圖片以後,系統會對圖片尺寸與手機屏幕進行比對,尺寸一致則會正常顯示,而遇到尺寸不一致的那麼系統會根據一定規律對圖片尺寸進行縮放,然後顯示在屏幕上。此時,由於圖片尺寸經過縮放,所以屏幕上的顯示效果會受到影響,因此通常在游戲測試階段,測試者應該准備好不同尺寸搭配不同解析度的設備進行多次校驗,如果是在上線前希望能進行大規模的手機游戲兼容性測試的話則可以嘗試使用諸如:TestBird這樣的第三方手游自動化測試平台。

不同比例的屏幕常見適配方式

通常成熟的游戲廠商針對不同比例以及不同解析度的屏幕,會有一套自有的解決方案。而對於中小規模的開發團隊或者個人開發者而言,往往沒有時間專門對不同尺寸的屏幕進行適配,比如常見的安卓設備屏幕比例為16:9,而像魅族的屏幕比例則為15:9,IPad則為4:3,這樣的情況下屏幕適配就變得異常麻煩。常見的圖片縮放在這樣的情況下會造成屏幕邊緣內容的丟失,通常最好的辦法是盡可能把圖片縮放到最大,保留部分沒有顯示的黑邊區域,而這樣的的好處是可以不丟失任何內容,但缺點是黑邊區域實際會影響到玩家的使用體驗。最早在IPad尚未普及時,為了保證游戲盡可能多的兼容IPad,因此大量的採用了這樣的適配方案。

另外值得一提的是,如果製作手游切圖的話母版可以盡可能用720P,因為目前主流機型的屏幕解析度是720P,720P在對圖片進行縮放的過程中放大到1080P時不會感到特別模糊,縮小到480P時也不會看不清內容。這是目前很常用的一個屏幕適配解決方案,但由於15年1080p將會開始普及,所以筆者認為很快情況就會有所變化了。

⑧ Android界面布局怎麼樣適應不同解析度的手機

各種Android操作系統的手機簡直就是琳琅滿目,屏幕解析度的差異可想而知。目前比較主流的有WVGA=800x480,HVGA=480x320,另外的還有QVGA=320x240。當然還有魅族M9的DVGA=960x640,還有蛋疼的摩托羅拉的FWVGA=854x480。

其實,在你layout的xml文件中,編寫的時候是不是用了許多的padding呢?如果是,那你就蛋疼了。因為這樣的布局永遠是無法適應所有手機屏幕的。

正確的做法應該是使用的是weight屬性。將你控制項的layout中的width、height設置為fill-parent,不要使用wrap——content。因為wrap-content的大小是不固定的。而weight(權重)這個屬性很好的解決了這個問題。

當包裹在控制項外面的Layout的width、height屬性都設置為fill-parent時,可以利用weight的反比特性。即如果控制項A設置weight為5,控制項B設置weight為7,那麼A所佔的空間為5/(5+7),B所佔的空間為7/(5+7)。這樣的反比屬性對任何解析度下的手機都是合適的。

當然,字體就不行了。那怎麼保證字體能夠跟布局一樣能夠自適應呢?
呵呵,很簡單,就是在你的res文件夾中創建一個文件夾,叫做values-320x240。其中320x240是你手機屏幕的解析度,根據你手機屏幕的情況做不同的命名,例如values-800x480。在該文件夾下創建一個dimens.xml文件,定義各種字體的大小。那麼系統就會自動根據你手機屏幕的解析度去調用響應的文件夾。

另外,值得提醒的是,記得在你默認的values文件下的dimens.xml文件中也要寫上相應的字體大小哦,因為當系統無法認識你手機屏幕大小的時候,它會自動去找你默認文件中的

東西,沒有寫的話程序會崩潰。

************************************************************分割線************************************************************

在看下面內容之前首先請看你SDK文檔中以下這篇文章

其實google在解析度適應性的東西已經寫的很清楚了,只是我們很多人沒去看而已

以下是結論:
屏幕解析度:1024x600
density:1(160)
文件夾:values-mdpi-1024x600

屏幕解析度:1024x600
density:1.5(240)
文件夾:values-hdpi-683x400 由1024/1.5 600/1.5得到,需要四捨五入。

屏幕解析度:800x480
density:1(160)
文件夾:values-mdpi-800x480

屏幕解析度:800x480
density:1.5(240)
文件夾:values-hdpi-533x320 由800/1.5 480/1.5得到,需要四捨五入。

以此類推
一般情況下需要創建出values 、values-mdpi 、 values-hdpi文件夾,以備在一些沒有規定的尺寸屏幕上找不到資源的情況。

然後在裡面使用不同的dimens文件,Layout中不要使用顯示的數字,所有的尺寸定義全都援引dimens裡面的內容。

這樣能夠保證深度UI定製的情況

另外在工程的default.properties中如果split.density=false,則解析度適配的時候文件夾命名不需要與scale相除


屏幕解析度:800x480
density:1.5(240)
文件夾:values-hdpi-800x480

************************************************************分割線************************************************************

關於dimens

位置:res\values
單位:px Pixel 以畫面的像素為單位;
in Inches以畫面的多少英寸為單位;
mm Millimeter以畫面的多少毫米為單位;
pt Points 一點為1/72英寸;
dp或dip Density-indepentdent 為160dpi屏幕的一個pixel;
ap Scale-independent Pixels 隨屏幕尺寸改變的一個pixel;

1.drawable: 存放不同解析度對應圖片

在2.1版本中有drawable-mdpi、drawable-ldpi、drawable-hdpi三個,這三個主要是為了支持多解析度。

drawable- hdpi、drawable- mdpi、drawable-ldpi的區別:

(1)drawable-hdpi裡面存放高解析度的圖片,如WVGA (480x800),FWVGA (480x854)

(2)drawable-mdpi裡面存放中等解析度的圖片,如HVGA (320x480)

(3)drawable-ldpi裡面存放低解析度的圖片,如QVGA (240x320)

系統會根據機器的解析度來分別到這幾個文件夾裡面去找對應的圖片。

在2.1之前的版本可以通過drawable-800x480, drawable-480x320 等方式實現。

2:layout:放置對應不同解析度的布局

創建不同的layout文件夾, layout-800x480,layout-480x320, 系統會根據屏幕的大小自己選擇合適的layout進行使用。

另外:可以在res目錄下建立layout-port和layout-land兩個目錄,裡面分別放置豎屏和橫屏兩種布局文件。

下面列出主流的android機型有:

240x320低端,國產入門級採用,例如HTC G4,G8
320x480中端,大部分基於此解析度,例如HTC G1,G2,G3,G6, MOTO ME600, SAMSUNG I7500
480x800中高端,大部分基於此解析度,例如HTC G5,G7, MOTO MT810
480x854MOTO特有的,例如Droid, Milestone, XT800
960x640, 魅族M9

閱讀全文

與android適配不同解析度相關的資料

熱點內容
安卓手機微信發不出視頻怎麼弄 瀏覽:229
壓縮機專用工具 瀏覽:575
qtcreator可以編譯cp嗎 瀏覽:405
小項目是雲伺服器還是本地好 瀏覽:14
墨痕齋是什麼游戲的伺服器 瀏覽:942
word文件如何壓縮大小 瀏覽:279
遵義聯通伺服器地址是什麼 瀏覽:29
ansys約束命令流 瀏覽:814
解壓軟體電腦版如何下載 瀏覽:791
閃電匕首演算法球 瀏覽:692
linuxredis停止命令 瀏覽:670
大麥賬號怎麼加密 瀏覽:113
穿越火線怎麼找伺服器 瀏覽:526
秘密加密社交軟體app 瀏覽:256
c語言編譯器怎麼找文件 瀏覽:835
數學不好能編程嗎 瀏覽:254
微雲里的視頻加密 瀏覽:41
3大加密貨幣交易平台 瀏覽:647
鈑金激光切割機編程 瀏覽:496
vivo手機手電筒app在哪裡 瀏覽:787