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

时间:2019-09-06 17:00:59

标签: android translate-animation

我正在阅读the documentation of TranslateAnimation,发现这是TranslateAnimation类的众多构造函数之一:

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

进一步阅读每个参数的含义后,我发现fromXDelta的含义是:

  

更改X坐标以在动画开始时应用

[ ...等等其他参数。]


问题:

我了解这些参数的含义,但我不知道如何表示它们。什么是度量标准和参考点?它们是指dp还是像素?

1 个答案:

答案 0 :(得分:0)

  

就像@Mike M.所说,代码侧的大多数尺寸都在   像素

但是,这并不是障碍,因为您仍然可以轻松地从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()内部传递该值。

我希望这可以帮助某个人。快活的编码!