現在、デバイスの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に変更しました。これは、画面の実際のピクセルに基づいているはずですが、一部のデバイスではまだ正確ではありません。