首页 文章

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

提问于
浏览
1

我想使用ObjectAnimator在Y轴上移动textView . 此代码可以工作但由于屏幕尺寸不适合每个设备 .

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

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

1 回答

  • 4

    有2种情况:

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

    • 你希望你的视图移动一些定义的 physical 屏幕距离(我猜是你的情况),所以用户会将它视为移动 . 在这种情况下,您应该使用与设备无关的像素( dp )而不是原始像素(在您的情况下为 -250 ) . ObjectAnimator 本身不支持这种转换,所以你必须自己做 . 最简单的方法(写入,读取和支持)是将这样的值存储在 dimensions 资源中并通过 getResources().getDimensionPixelOffest() 方法获取它们

相关问题