【发布时间】:2014-04-11 10:06:38
【问题描述】:
我试图在视图的画布上画一个圆圈,我遇到一个问题,在不同屏幕尺寸上测试代码后,我发现绘图尺寸发生了变化,尽管我给视图的静态宽度和高度为 300 . 我希望它在所有设备上都具有相同的尺寸。
【问题讨论】:
我试图在视图的画布上画一个圆圈,我遇到一个问题,在不同屏幕尺寸上测试代码后,我发现绘图尺寸发生了变化,尽管我给视图的静态宽度和高度为 300 . 我希望它在所有设备上都具有相同的尺寸。
【问题讨论】:
这必然会发生,因为设备具有不同的密度。 尝试使用以下转换为像素/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;
}
【讨论】:
密度是屏幕每平方区域的像素数。密度较高的设备每平方英寸的像素比密度较低的设备多,因此 5 英寸 1080p 设备上的 300x300 像素看起来会比 5 英寸 720p 设备上小很多。
【讨论】: