我试图在Canvas of a View上绘制一个圆圈,我面临一个问题,在测试不同屏幕尺寸的代码后,我发现绘图尺寸发生了变化,尽管我给了视图一个静态宽度和高度为300我希望它在所有设备上都有相同的尺寸。
答案 0 :(得分:3)
这必然会发生,因为设备具有不同的密度。 尝试使用以下内容转换为像素/ dpi。
private float dpFromPixels(float px)
{
return px / this.getContext().getResources().getDisplayMetrics().density;
}
private float pixelsFromDp(float dp)
{
return dp * this.getContext().getResources().getDisplayMetrics().density;
}
答案 1 :(得分:1)
密度是屏幕每平方区域的像素数。具有更高密度的设备具有比具有更低密度的设备更多的像素(平方英寸),因此在5英寸1080p设备上的300x300像素将比在5英寸720p设备上看起来小得多。