`canvas.drawCircle` 方法的半径是以 dp 为单位的吗?

Pea*_*Gen 2 java android canvas

只是一个简单的问题。在android中,绘制圆的代码Canvas如下。

canvas.drawCircle (float cx, float cy, float radius, Paint paint)
Run Code Online (Sandbox Code Playgroud)

我阅读了文档以了解这float radius是 dp 单位还是任何其他单位。没有这样的提及。

float radius那么,这里提到的单位是什么?是dp单位吗?

Mah*_*ade 5

Canvas在android中,使用参数绘制圆的代码float位于pixels.

你说的floatfloat像素表示。

下面是 dp 到 px 和 px 到 dp 转换的示例代码。

将 dp 转换为像素。

public static int dp2px(Resources resource, int dp) {
    return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,   dp,resource.getDisplayMetrics());
}
Run Code Online (Sandbox Code Playgroud)

将像素转换为 dp。

 public static float px2dp(Resources resource, float px)  {
    return (float) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX, px,resource.getDisplayMetrics());
}
Run Code Online (Sandbox Code Playgroud)

转换代码来自这里。