我在我的应用程序中有一个画布,当用户在上面绘图时,保存所有的坐标。然后将保存的坐标转换到另一个设备上,并尝试绘制像素。
例如: (20,30), (50,40) .. .. ..
由于屏幕大小和分辨率不同,我的绘图是不完整的,位置和绘制的图像不正确。
如何将坐标映射到另一个设备,以便其位置与实际绘制图像的设备完全相同?
我在我的应用程序中有一个画布,当用户在上面绘图时,保存所有的坐标。然后将保存的坐标转换到另一个设备上,并尝试绘制像素。
例如: (20,30), (50,40) .. .. ..
由于屏幕大小和分辨率不同,我的绘图是不完整的,位置和绘制的图像不正确。
如何将坐标映射到另一个设备,以便其位置与实际绘制图像的设备完全相同?
当你保存坐标时,需要通过将坐标除以屏幕密度来获取绘图中的设备无关像素,当你在设备上绘制时,需要通过将坐标乘以设备密度来绘制。例如:
float density = getContext().getResources().getDisplayMetrics().density;
canvas.drawText(text,
xPos * density,
yPos * density,
mPaint);