2012-04-10 36 views
0

雖然我知道圖像分辨率,並支持他們在android上是一個相當常見的問題圍繞android我似乎無法找到任何問題或在線發佈處理我想要的東西去做。Android - 覆蓋不同分辨率的圖像

我有一個地圖,我設置爲Android設備的背景。然後,我將可觸及的點和圖像疊加在特定城市所在的位置。我的問題是如何正確處理城市在不同設備上的位置?

我有不同的圖像爲不同的dpi如果有人要問。然而,在這種情況下,使用基於縮放的背景大小的百分比來固定x和y的位置是正確的方法。這是我不斷回來的解決方案,但是我還沒有找到一種方法來獲取背景圖像的縮放大小。

任何反饋將不勝感激。 瑞安

回答

1

這是中的Android確實難以嘗試使用DPI /權重的組合在背景層圖像上的特定位置。其中一個問題是背景如何縮放?您是使用建議的9補丁圖像還是讓android裁剪或縮小圖像?即使在這之後,手機的「dpi」值也不準確,操作系統只是使用預定義的乘數(例如hdpi的1.5倍)來快速估計圖像的大小。要得到「真實」的dpi,你需要這樣的東西:

DisplayMetrics dm = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(dm); 

float xDpi = dm.xdpi; 
float yDpi = dm.ydpi; 

並在你的計算中使用這些值。最後,最好簡單地使用屏幕的真實值並使用您所述的百分比。我相信大多數OpenGL應用程序也是這樣做的(如果我錯了,有人會糾正我),而使用圖形引擎邊緣的應用程序的行爲可能類似。

+0

謝謝,雖然我不太喜歡這個主意,但知道這是我需要去的方向是有幫助的。我已經允許背景縮放以適應屏幕,我剛剛計算了縮放比例,並用於計算疊加其他圖像的點數。到現在爲止還挺好!謝謝,至少我知道我正朝着正確的方向前進。 – Ryan 2012-04-18 08:18:11

0

嘗試佈局權重,這裏是一個很好的解釋:

http://www.chess-ix.com/2012/01/17/the-use-of-layout_weight-with-android-layouts/

+0

儘管這可能在理論上回答這個問題,但[這將是更可取的](http://meta.stackexchange.com/q/8259)在這裏包括答案的基本部分,並提供了供參考的鏈接。 – 2012-04-10 14:13:44

+0

感謝您的回覆,但我不明白這是如何涉及的。不是在屏幕上使用多個視圖,而是使用代表世界地圖的單個視圖。然後,我將小繪製的圖像疊加到該地圖上。目前正如前面提到的,我正在使用縮放的屏幕尺寸 - 這似乎工作,但似乎過度。 – Ryan 2012-04-11 09:56:46