1

我想使用 ObjectAnimator 在 Y 轴上移动 textView。此代码有效,但由于屏幕尺寸的原因,它并不适合所有设备。

   ObjectAnimator mover = ObjectAnimator.ofFloat(expand, "translationY", -250, 0);

如何更改最后两个参数?也有类似的问题,我也尝试过这些,但它们不起作用。

4

1 回答 1

4

有2种情况:

  1. 您想移动您的视图,以便它相对于另一个视图占据一些定义的位置。在这种情况下,您应该仅根据这些视图的位置进行计算(请参阅getTop()getLeft()等)

  2. 您希望您的视图移动屏幕的某个定义的物理距离(我猜这是您的情况),因此用户会将其视为移动。在这种情况下,您应该使用与设备无关的像素(dp)而不是原始像素(-250在您的情况下)。ObjectAnimator本身不支持这样的转换,需要自己动手。最简单的方法(写、读和支持)是将这些值存储在dimensions资源中并通过getResources().getDimensionPixelOffest()方法获取它们

于 2014-09-05T09:19:54.370 回答