Android模擬器尺寸隨意改
如果開(kāi)發(fā)人員想在Android開(kāi)源手機(jī)操作系統(tǒng)中進(jìn)行一些修改的話,需要使用模擬器來(lái)進(jìn)行相應(yīng)的操作。我們51CTO也在相關(guān)文章中向大家介紹過(guò)Android模擬器具體作用。那么今天大家可以通過(guò)對(duì)Android模擬器尺寸的大小修改方法進(jìn)一步對(duì)模擬器有一個(gè)深入的了解。#t#
Android模擬器提供了4個(gè)標(biāo)準(zhǔn)的skin供我們使用,分別對(duì)應(yīng)HVGA(橫屏/豎屏)和QVGA(橫屏/豎屏),我們只要在啟動(dòng)模擬器時(shí)使用 -skin <Skin Name>參數(shù)就可以載入相應(yīng)的皮膚。這不僅讓我們可以隨意的修改皮膚的外觀,更主要的是當(dāng)我們基于Android開(kāi)發(fā)新的產(chǎn)品時(shí),可以根據(jù)新的硬件spec來(lái)設(shè)置模擬器的參數(shù),包括分辨率、按鍵布局、網(wǎng)絡(luò)速度、網(wǎng)絡(luò)延時(shí)等。現(xiàn)在就讓我們來(lái)看看定制Android模擬器skin的方法,我將以一個(gè) WVGA分辨率的橫屏(Landscape)skin為例。
首先我們來(lái)看一下skin在SDK中的位置,默認(rèn)的skin放在$ANDROID_HOME/tools/lib/images/skins/目錄,我們要安裝新的skin,也只要簡(jiǎn)單的把skin解壓到這個(gè)目錄就可以了??紤]到鍵盤按鍵數(shù)目眾多,每個(gè)都重新定位工作量很大,我將基于HVGA skin來(lái)修改,這個(gè)skin的設(shè)備背景和鍵盤背景分別是兩張圖片,只要鍵盤背景大小不變,原先定義好的坐標(biāo)位置不需要修改就可以在新的skin里使用。
Android模擬器尺寸大小修改的具體步驟:
第一步,在$ANDROID_HOME/tools/lib/images/skins/目錄下新建一個(gè)名為WVGA的目錄,把HVGA目錄下的 device.png、keyboard.png以及l(fā)ayout3個(gè)文件復(fù)制過(guò)來(lái),然后把HVGA-L目錄下除了background.png和 layout外的所有文件都復(fù)制過(guò)來(lái),這樣我們定制所需要的資源便都有了,接下里只要修改即可。
第二步,用GIMP(Windows下可以用Paint.NET)修改device.png,逆時(shí)針?lè)较蛐D(zhuǎn)90度,并作適當(dāng)?shù)姆糯蠛图羟?,使得屏幕區(qū)域正好為800*600。不要修改keyboard.png。
第三步,因?yàn)槲覀儼言O(shè)備背景作了放大,在調(diào)整按鍵的位置之前,可以現(xiàn)在GIMP中看一下效果,適當(dāng)?shù)陌裩ome.png、powe.png、arrow_left.png等也放大一些。
第四步,開(kāi)始修改layout文件。layout文件的結(jié)構(gòu)很容易理解,首先是device部分,包含了背景(background)、顯示區(qū)域 (display)和按鍵(buttons);接下來(lái)是鍵盤區(qū)域,包含了背景圖片(background)和鍵盤按鍵(buttons)的定義;第3部分是模擬器整體布局的設(shè)定,包含了窗口大小(width, height)、背景色(color)、屏幕方向(event),以及它所包含的設(shè)備部分與鍵盤部分的位置;第4部分則可以修改模擬器的鍵盤布局 (keyboard charmap),網(wǎng)絡(luò)鏈接速度(network speed)和延時(shí)(network delay)。
讓我們從頭來(lái)看layout文件。我們先把display的寬和高分別修改為800和480,x和y則填入設(shè)備背景上顯示區(qū)域的左上角坐標(biāo),這樣,模擬器的輸出分辨率和位置就確定了。device的buttons部分我們暫時(shí)放一下,而鍵盤區(qū)域的background和buttons都不需要修改,所以我們來(lái)到了整體布局(layout)部分,根據(jù)之前修改設(shè)備背景時(shí)掌握的數(shù)據(jù),暫時(shí)先把窗口的寬和高設(shè)為1280*800,背景色保持不變,event的確切含義我也沒(méi)有查到,但是可以肯定它會(huì)影響屏幕輸出內(nèi)容的方向,EV_SW:0:1則是我們能閱讀情況。 隨后,設(shè)置device和keyboard兩部分在整個(gè)窗口的位置,酌情設(shè)定即可。最后,我們保持鍵盤布局為qwerty2,并且網(wǎng)絡(luò)設(shè)定也保持默認(rèn)值不變(稍后解釋這一點(diǎn))。
這時(shí),用./emulator -skin WVGA命令打開(kāi)模擬器,我們就可以看到一個(gè)比較正常的模擬器界面了,鍵盤也可以使用,顯示區(qū)域的位置也基本OK,只是設(shè)備上的Home、Back等按鍵是完全錯(cuò)位的。好吧,讓我們回過(guò)頭去修改device的buttons定位,這時(shí),我們可能需要邊改邊試了,同時(shí)顯示區(qū)域的位置,鍵盤擺放的位置也可以作進(jìn)一步的調(diào)整。
到這里,一個(gè)WVGA的skin的基本上已經(jīng)完成了,但是關(guān)于Android模擬器尺寸的修改還留下了幾個(gè)問(wèn)題。
1、如果在筆記本(1280*800分辨率)上用,skin的顯示區(qū)域太大,鍵盤部分可能顯示不全,給使用帶來(lái)不便
模擬器還會(huì)報(bào)出警告: emulator window was out of view and was recentred
我們可以通過(guò)-scale 選項(xiàng)來(lái)解決這個(gè)問(wèn)題,針對(duì)我們這個(gè)WVGA skin,用./emulator -skin WVGA -scale 0.9來(lái)啟動(dòng)模擬器就沒(méi)問(wèn)題了
2、在eclipse中,如何使用WVGA skin
在 Run -> Run Configurations -> Target -> Emulator launch parameters 這里可以選擇我們所要用的skin。
同時(shí)在”Additional Emulator Command Line Options” 里面可以填入-scale ,來(lái)縮放模擬器窗口。
不僅是Android模擬器尺寸的修改,我們之前提到的網(wǎng)絡(luò)速度和網(wǎng)絡(luò)延時(shí),也可以在這里設(shè)置(在這里設(shè)置顯然要好過(guò)在skin中設(shè)置)。