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()
.
中传递值
我希望这对那里的人有所帮助。编码愉快!
我正在通读 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()
.
我希望这对那里的人有所帮助。编码愉快!