TranslateAnimation的数值参数是dp还是px?

Are the numerical parameters of TranslateAnimation in dp or px?

我正在通读 the documentation of TranslateAnimation,我看到这是 TranslateAnimation 的众多构造函数之一 class:

public TranslateAnimation (float fromXDelta, 
            float toXDelta, 
            float fromYDelta, 
            float toYDelta)

进一步阅读每个参数表示的内容,我看到 fromXDelta 表示:

Change in X coordinate to apply at the start of the animation

[...其他参数依此类推。]


问题:

我明白这些参数的含义,但我不知道如何表示它们。衡量标准和参考点是什么?它们的单位是 dp 还是像素?

Like @Mike M. said, most dimensions on the code side are in Pixel.

但是,这不是障碍,因为您仍然可以轻松地在 dp 和 px 之间来回转换。您可以使用以下两个函数来实现此目的:


dp 到 px:

public float convertDpToPixel(float dp, Context context) {
    return dp * ((float) context.getResources().getDisplayMetrics().densityDpi / DisplayMetrics.DENSITY_DEFAULT);
}


px 到 dp

public float convertPixelsToDp(float px, Context context) {
    return px / ((float) context.getResources().getDisplayMetrics().densityDpi / DisplayMetrics.DENSITY_DEFAULT);
}


PS:

如果您需要在int而不是float中返回dp值,您可以直接在Math.round().

中传递值

我希望这对那里的人有所帮助。编码愉快!