画布大小随着屏幕尺寸的不同而不断变化

时间:2014-04-11 01:59:06

标签: android canvas ondraw

我试图在Canvas of a View上绘制一个圆圈,我面临一个问题,在测试不同屏幕尺寸的代码后,我发现绘图尺寸发生了变化,尽管我给了视图一个静态宽度和高度为300我希望它在所有设备上都有相同的尺寸。

2 个答案:

答案 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设备上看起来小得多。