安卓 - 谷歌地图 - 投影 - 到像素() - 它是与设备无关的像素



>我正在使用地图视图投影来获取屏幕像素,例如

currentPixelLocation =  businessMapMv.getProjection().toPixels(tappedLocation, null);

然后我使用它在屏幕上做一些操作,比如将气球尖端居中。

所以我所做的是

currentPixelLocation.y = currentPixelLocation.y - 100

这工作正常。toPixel 方法设备返回的像素位置是否独立?

像上面的代码这样的操作是否适用于所有屏幕分辨率?

我认为您网站上的设备独立像素存在误解。如果以与设备无关的像素 (dip) 声明布局,则框架本身会根据设备显示密度计算运行时运行设备的 Veiw 大小。框架计算视图维度后,视图的维度以像素为单位设置。

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

在我看来,你计算currentPixelLocation.y = currentPixelLocation.y - 100 100 代表什么?这 100 个绝对取决于设备。如果要减去 100 像素,只需使用此计算currentPixelLocation.y = currentPixelLocation.y - 100 * getResources().getDisplayMetrics().density + 0.5f。它确保 100 像素是计算设备**取决于。

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

最新更新