天天看点

Android同一图片在不同分辨率下长宽不同

帮同学写一个小APP,需要在一张地图上画出算法给出的实际路线。

程序在Genymotion虚拟机上运行时显示正常,但是在Android自带的虚拟机和我自己的安卓机上显示却出现了偏差。

画路线时,先根据屏幕大小调整地图的大小,通过Bitmap的getWidth和getHeight得到图片的宽和高,进而求出scale进行缩放。然而打印出来却发现,在Genymotion上和图片的真实大小一样,但是在Android自带的虚拟机上宽和高分别变成了两倍,而在我自己的安卓机上宽和高变成了1.5倍。由此导致scale不准确,进而画路线时出现了偏差。

查阅资料才得知,同一张图片在不同分辨率下,图片的大小会发生变化,通过Bitmap的getWidth和getHeight得到的图片的宽和高自然也会变大或者变小。

搞了一晚上,真累!