代码之家  ›  专栏  ›  技术社区  ›  aylin

如何使用ObjectAnimator参数为所有设备进行调整?

  •  1
  • aylin  · 技术社区  · 10 年前

    我想使用ObjectAnimator在Y轴上移动一个textView。这段代码可以工作,但由于屏幕大小的原因,它不适合每个设备。

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

    如何更改最后两个参数?在那里也有类似的问题,我也尝试过,但都不起作用。

    1 回复  |  直到 10 年前
        1
  •  4
  •   Dmitry Zaytsev    10 年前

    有两种情况:

    1. 您希望移动视图,使其相对于另一个视图占据某个定义的位置。在这种情况下,您应该仅基于这些视图的位置进行计算(请参见 getTop() , getLeft() 等)

    2. 您希望视图移动一些已定义的 身体的 屏幕的距离(我猜这是你们的情况),所以用户会感觉到它在移动。在这种情况下,您应该使用与设备无关的像素( dp )而不是原始像素( -250 在您的情况下)。 ObjectAnimator 它本身不支持这种转换,因此您必须自己进行。最简单的方法(写入、读取和支持)是在 dimensions 资源并使其通过 getResources().getDimensionPixelOffest() 方法