2013-01-03 27 views
0

我一直在使用像素定位的東西(位圖,文本)的表面視圖。例如,爲了居中,我會佔據表示屏幕的矩形的寬度和高度的一半。屏幕寬度和高度正在按預期返回。我的手機(480 * 800)報告可用屏幕爲442 * 800,密度爲1.5,並且在240 * 320模擬器上運行,可用屏幕報告爲221 * 320,密度爲0.75。如預期的那樣。安卓定位像素的作品,但不應該

但是,這些值肯定是像素,所以一定要把中心的東西,我應該先乘以密度因子減半。奇怪的是,所有的東西都完美地集中在低分辨率模擬器和高分辨率手機上。這對我沒有意義。

在這兩個屏幕上,爲了使文本看起來相同,我使用密度縮放值設置大小,正如我所預期的那樣,這可以起作用。

在清單中,我宣佈了所有屏幕尺寸的支持(雖然我看到了同樣的「正確」的行爲,我這樣做之前也)

爲什麼像素值「工作」沒有我他們調整密度?我現在很困惑。

回答

2

像素是一個像素是一個像素!

這是屏幕和尺寸的最低標準。

密度是指將多少像素打包成一個測量單位,通常是一英寸。在物理顯示器上。

例如,採用5英寸的物理寬度,分辨率爲500x1000時會產生200dpi的密度(5英寸內的1000像素)。具有相同分辨率的4英寸物理寬度產生250dpi的密度(4英寸爲1000像素)。

x = 500(寬度的一半)是屏幕的中心,並且與密度無關。事實上,以像素爲單位的寬度的一半是任何密度的任何尺寸屏幕的屏幕中心。

+0

我並不反對。我的觀點是,職位是以dps來規定的,或者說,他們並不像證據表明的那樣。你是否有效地說矩形等的座標等應該以像素爲單位給出?這難道不會寫難以在不同設備上明智地定位事物的代碼嗎? – Dave

+0

我可能會感到困惑。你開始說「我一直在使用像素在表面視圖上定位東西(位圖,文本)。」我假設你正在使用原始像素來定位事物,如果你正在測量設備並進行數學計算,這很好。或者我完全錯過了這一點?請記住,DIP(或DP)和DPI是完全不同的東西,不是像素(儘管DIP名稱 - 這是一個比例)。 – Simon

+0

我一直在使用原始像素,一切都很好,但後來發現它「不應該」在工作(儘管顯然是這樣,因此我很困惑)。但是,我想我現在已經明白了。系統預計以像素爲單位的座標(自然)。如果我想讓某些東西在屏幕中間加上「一點」,然後在不同的分辨率屏幕上使這個「位」看起來「相同」,我需要調整「位「的密度,然後將其添加到明顯必須保持不變的中心像素位置。通常情況下,大聲說出事情(在這種情況下寫作)使得便士下降。 – Dave