目前我测量设备的 DPI,然后根据 DPI 在一定数量的像素处画一条线(如果 DPI 为 320,那么我每 320 像素显示一条线)。
我可以在某些设备上使用它,但是其他设备却很遥远,这让我很困惑...
关于我做错了什么的任何建议?
这是我用来获取设备 DPI 的代码(以及其他各种内容)
metrics = context.getResources().getDisplayMetrics();
width = metrics.widthPixels;
height = metrics.heightPixels;
xdpi = metrics.xdpi;
ydpi = metrics.ydpi;
densityDpi = metrics.densityDpi;
然后这是我在屏幕顶部绘制线条的方式。
x = 0;
while (x <= width) {
canvas.drawLine(x, 0, x, lineHeight, paint);
x = x + xdpi;
}
起初我使用变量 densityDpi 来绘制线条,但后来我发现那只是一个估计的 DPI。所以我将代码更改为 xdpi,它应该基于屏幕的实际像素,但在某些设备上仍然不准确。