Android RectF使用dp还是px?

Android RectF使用dp还是px?,android,canvas,Android,Canvas,在画布中,使用RectF绘制矩形时,是否需要设置顶部并将其保留在dp或px中 Integer padding = 10; Integer width = 100; // It is dp or px? Integer height = 50; RectF position = new RectF(); position.top = 0 + padding; position.bottom = position.top + height; position.left = 0 + padding;

在画布中,使用RectF绘制矩形时,是否需要设置顶部并将其保留在dp或px中

Integer padding = 10;
Integer width = 100; // It is dp or px?
Integer height = 50;

RectF position = new RectF();
position.top = 0 + padding;
position.bottom = position.top + height;
position.left = 0 + padding;
position.right = position.left + width;

它不指示值是用px还是dp表示。

它使用像素,而不是与密度无关的像素。

正如已经指出的,Canvas和RectF使用px而不是dp。 至于文档,则是画布文档 () 而RectF只提到像素

由于没有明确指出它们是dp,并且这两个类都是直接从java.lang.Object派生的,因此只能得出结论,它们必须是“正常”像素

如果出于某种原因,您需要从dp转换为px,反之亦然,请参阅本文档:

使用像素进行转换,但如果需要,必须对其进行转换

private int convertDpToPx(int dp){
    return Math.round(dp * (getResources().getDisplayMetrics().xdpi / DisplayMetrics.DENSITY_DEFAULT));
}

我希望它能有所帮助。

canvas总是使用px。它在哪里有文档记录?谢谢,文档是在哪里定义的?不确定。尽管Android中的大多数图形API(如果不是所有的话)都使用像素