2. 代碼中把Density設置爲默認的Density,也就是當前,機器中的Density。那如何設置這個Density。同樣在這個類最下面,找到系統獲取Density的方法:
而如何給系統設置Density,就在./device/eshion/f101/init.rc,添加setprop ro.sf.lcd_density 240.
3. 更改系統像素是在./framework/core/java/android/content/res/CompatibilityInfo.java下:
eg:
1.DisplayMetrics.java中
系統定義了3個等級的density,分別是low-120,medium-160,high-240
2.customize\customer_cfg\t600a\res\system.prop裏
ro.sf.lcd_density = 240
3.trunk\customize\customer_cfg\t600a\res\u-boot下sp8810.h:根據 lcd 分辨率確定需要的宏
#if defined(CONFIG_SP6820G_RTL_HL) // HVGA
#define CONFIG_LCD_HVGA 1
//#define CONFIG_LCD_WVGA 1
#else
//#define CONFIG_LCD_HVGA 1
#define CONFIG_LCD_WVGA 1
#endif
=======================================================================================================
Android 適配不同分辨率&hdpi、mdpi、ldpi&橫屏豎屏
一:不同的layout
Android手機屏幕大小不一,有480×320, 640×360, 800×480.怎樣才能讓App自動適應不同的屏幕呢?
其實很簡單,只需要在res目錄下創建不同的layout文件夾,比如layout-640×360,layout-800×480,所有的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 (480×800),FWVGA (480×854)
(2)drawable-mdpi裏面存放中等分辨率的圖片,如HVGA (320×480)
(3)drawable-ldpi裏面存放低分辨率的圖片,如QVGA (240×320)
系統會根據機器的分辨率來分別到這幾個文件夾裏面去找對應的圖片。
在開發程序時爲了兼容不同平臺不同屏幕,建議各自文件夾根據需求均存放不同版本圖片。
三:橫屏豎屏
以下步驟是網上流傳的,不過我自己之前是通過圖形化界面實現這個配置,算是殊途同歸,有空我會把圖片貼上來。
還要說明一點:每個activity都有這個屬性screenOrientation,每個activity都需要設置,可以設置爲豎屏(portrait),也可以設置爲無重力感應(nosensor)。
要讓程序界面保持一個方向,不隨手機方向轉動而變化的處理辦法:
在AndroidManifest.xml裏面配置一下就可以了。加入這一行android:screenOrientation=”landscape”。
例如(landscape是橫向,portrait是縱向):
WVGA = 800 * 480; WVGA2 = 768 * 480; FWVGA = 854 * 480; DVGA = 960 * 640; PAL = 576 * 520; NTSC = 486 * 440; SVGA = 800 * 600;
WSVGA [...]