我想使用ObjectAnimator在Y轴上移动textView . 此代码可以工作但由于屏幕尺寸不适合每个设备 .
ObjectAnimator mover = ObjectAnimator.ofFloat(expand, "translationY", -250, 0);
如何更改最后两个参数?我也尝试过类似的问题,但它们不起作用 .
有2种情况:
您希望移动视图,使其相对于另一个视图需要一些已定义的位置 . 在这种情况下,您应该仅根据这些视图的位置进行计算(参见 getTop() , getLeft() 等)
getTop()
getLeft()
你希望你的视图移动一些定义的 physical 屏幕距离(我猜是你的情况),所以用户会将它视为移动 . 在这种情况下,您应该使用与设备无关的像素( dp )而不是原始像素(在您的情况下为 -250 ) . ObjectAnimator 本身不支持这种转换,所以你必须自己做 . 最简单的方法(写入,读取和支持)是将这样的值存储在 dimensions 资源中并通过 getResources().getDimensionPixelOffest() 方法获取它们
dp
-250
ObjectAnimator
dimensions
getResources().getDimensionPixelOffest()
1 回答
有2种情况:
您希望移动视图,使其相对于另一个视图需要一些已定义的位置 . 在这种情况下,您应该仅根据这些视图的位置进行计算(参见
getTop()
,getLeft()
等)你希望你的视图移动一些定义的 physical 屏幕距离(我猜是你的情况),所以用户会将它视为移动 . 在这种情况下,您应该使用与设备无关的像素(
dp
)而不是原始像素(在您的情况下为-250
) .ObjectAnimator
本身不支持这种转换,所以你必须自己做 . 最简单的方法(写入,读取和支持)是将这样的值存储在dimensions
资源中并通过getResources().getDimensionPixelOffest()
方法获取它们