RectF使用dp还是px?

时间:2015-09-12 15:02:49

标签: android canvas

在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;
position.right = position.left + width;

http://developer.android.com/intl/es/reference/android/graphics/RectF.html 它不表示值是以px还是dp表示。

3 个答案:

答案 0 :(得分:4)

正如已经指出的那样,Canvas和RectF使用px而不是dp。 至于文档,Canvas的文档 (http://developer.android.com/intl/es/reference/android/graphics/Canvas.html) 和RectF只提到像素。

由于没有明确指出它们是dp并且这两个类都是直接从java.lang.Object派生的,所以我们只能得出它必须是" normal"像素。

如果由于某种原因,您需要从dp转换为px,反之亦然,请查看此文档: http://developer.android.com/intl/es/guide/practices/screens_support.html

答案 1 :(得分:0)

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

答案 2 :(得分:0)

它使用像素,但是如果您要转换的话。

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

希望对您有帮助。