2013-08-30 31 views
4

我創建了一個沒有屏幕縮放的AVD,但像素與我的屏幕不匹配。如何在android模擬器上獲得1:1像素?

有沒有解決這個問題的方法?

enter image description here

屏幕被構造爲720寬,但示出了作爲413我的屏幕上。

編輯:多一點experiementation,通過@Fallenreaper答案動機:

如果我在瀏覽器中加載一個500像素寬的圖像,它仍然大於屏幕(這應該是720像素寬)。

enter image description here

這裏是500像素的圖像,有兩個截屏,滾動到右側,以顯示它比720像素的屏幕更大。

編輯2: 這可能與此http://www.quirksmode.org/blog/archives/2010/04/a_pixel_is_not.html

回答

0

每個設備具有一個不同的像素密度,因此,如果要調整它是一個1對1的比率,則需要確定設備像素密度,並與您的主機進行比較......然後相應地進行縮放。

不同的像素密度會導致1比另一個大,所以如果你設計的是屏幕,你的文本框看起來是正確的,就像30x150,但在設備上,30x150會小得多。

來源:我做的iOS和Android Web應用開發的WebViews和我跑這一點,因爲我每天都這樣做。

+0

好點,但每個屏幕的dpi是固定的。如果仿真器在我的桌面上運行,除非軟件使用軟件進行縮放,否則不可能有不同的dpi。否則它不僅會看起來不同的大小,而且模糊不清。模擬器是像素完美的,這意味着無論我的顯示器使用什麼dpi,它都是418像素。你可以通過圖像測試來確認我放在那裏。 – gcb

+0

不同的模擬器模擬不同的手機,屏幕,操作系統和所有。由於硬件方面的問題,我老實說不使用模擬器。只需要1個android手機並使用它。 :)模擬器存在隱藏的開銷,導致某些事情變慢,或者只是無法使用。 – Fallenreaper

+0

現在2016年的模擬器非常非常快。 但是現在控制工具非常麻煩。 1:1像素會很好。 –

3

當你開始從Android Virtual Device Manager模擬器,你必須檢查Scale display to real size,然後指定​​和Monitor dpi計算到的1.0(或0.50如果你在OSX視網膜顯示器上)一個Scale值。

在我的情況,我指定一個4.7 inScreen Size160Monitor dpi,其產生0.50Scale。當我截取我的模擬器時,它現在是像素對像素,我期望在設備上看到。

從命令行啓動模擬器時,您還可以指定命令行選項-scale 1.0

如果您的模擬器已在運行,您可以通過發送window scale 1.0來調整比例尺emulator console。這對於我使用Retina MBP來說太大了。

adb devices發現您的運行模擬器。您應該看到輸出類似這樣:

$ adb devices 
List of devices attached 
emulator-5554 device 

然後,您可以連接到該設備併發送規模命令:

$ telnet localhost 5554 
Trying ::1... 
telnet: connect to address ::1: Connection refused 
Trying 127.0.0.1... 
Connected to localhost. 
Escape character is '^]'. 
Android Console: type 'help' for a list of commands 
OK 
window scale .50 
OK 
^] 
telnet> quit 
Connection closed. 

你還可以用netcat的做一個腳本:

$ echo 'window scale 0.50' | nc localhost 5554 
+0

是不是「沒有scalling」選項相同呢?如果是這種情況,它是如何解釋我無法在(縮放或不縮放)720px虛擬設備屏幕內顯示500像素的屏幕? – gcb