Android - 谷歌地图 - 投影 - toPixels() - 它是设备独立的像素?

时间:2012-06-27 09:17:11

标签: android google-maps projection

我正在使用地图视图投影来获取像

这样的屏幕像素
currentPixelLocation =  businessMapMv.getProjection().toPixels(tappedLocation, null);

然后我用它在屏幕上进行一些操作,就像对齐气球一样。

所以我做的是

currentPixelLocation.y = currentPixelLocation.y - 100

这很好用。 toPixels方法设备返回的像素位置是否独立?

我的manioulation像上面的代码一样适用于所有屏幕分辨率吗?

2 个答案:

答案 0 :(得分:1)

我认为您网站上的设备无关像素存在误解。如果在设备无关像素(dip)中声明布局,框架本身会根据设备显示密度计算正确的Veiw大小 - 用于运行时运行的设备。框架计算视图维度后,视图的尺寸设置为像素。

因此,getProjection()。toPixels()为您提供相对于底层MapView的位置(以像素为单位)。那些像素与设备无关。

我的错误是你的计算currentPixelLocation.y = currentPixelLocation.y - 100 100代表什么?这100个肯定取决于设备。如果您想减去100像素,只需使用此计算currentPixelLocation.y = currentPixelLocation.y - 100 * getResources().getDisplayMetrics().density + 0.5f。它确保100个像素的计算设备* in * dependent。

答案 1 :(得分:0)

它们与设备无关,但它们取决于为图块层定义的图块大小。在常规地图上,默认图块大小为256 x 256像素。