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

问题描述 投票:2回答:1

我读过the documentation of TranslateAnimation,发现这是TranslateAnimation类的许多构造函数之一:

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

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

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

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

问题:

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

android translate-animation
1个回答
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()中传递该值。

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

© www.soinside.com 2019 - 2024. All rights reserved.