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

时间:2016-07-12 06:32:09

标签: java android canvas

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

canvas.drawCircle (float cx, float cy, float radius, Paint paint)

我读了documentation以确定这个float radius是dp单位还是任何其他单位。没有这样的提及。

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

2 个答案:

答案 0 :(得分:2)

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

您说float,是float像素表示。

以下是将dp转换为px和px转换为dp的示例代码。

  

将dp转换为像素。

public static int dp2px(Resources resource, int dp) {
    return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,   dp,resource.getDisplayMetrics());
}
  

将像素转换为dp。

 public static float px2dp(Resources resource, float px)  {
    return (float) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX, px,resource.getDisplayMetrics());
}

Conversion Code is from here.

答案 1 :(得分:0)

没有。浮点值将以像素为单位。如果需要(推荐),可以使用维度属性

在/ res文件夹中指定dp单位
<dimen name="radius">12dp</dimen>