Android -相对于父对象与相对于自身

56lgkhnf  于 2023-02-02  发布在  Android
关注(0)|答案(2)|浏览(110)

处理TranslateAnimations时,可以将特定对象从位置A移动到位置B。这些位置的坐标可以用Relative_To_Self与Relative_To_Parent表示?这些位置用百分比表示。
这到底是什么意思?
例如,假设我有一个宽度设置为Fill_Parent的Relative_Layout和一个宽度为80像素的ImageView。
下面是我所看到的定义:

public TranslateAnimation (int fromXType, float fromXValue, int toXType, float toXValue, int fromYType, float fromYValue, int toYType, float toYValue)

如果我将fromXType设置为Relative_to_parent,将from X值设置为0.0,这是否意味着我的imageView将从屏幕的最左侧开始?
如果我将它设置为"相对于父对象",并将fromXValue设置为-1.0,这是否意味着它将从原始位置的-80像素开始?
我的假设正确吗?提前感谢任何帮助。

ffx8fchx

ffx8fchx1#

TranslateAnimation translate = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, 1.0f, Animation.RELATIVE_TO_PARENT, 0.0f,Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f);

既然如此
相对于父代(RELATIVE_TO_PARENT

0.0f = ParentView.getLeft() value.
1.0f = ParentView.getRight() value.

相对于自身(RELATIVE_TO_SELF

0.0f = SelfView.getLeft() value.
1.0f = SelfView.getRight() value.

例如

if parentView.getLeft() = 0, parentView.getRight() = 1000(px), self.getLeft() = 0, self.getRight = 100(px)

RELATIVE_TO_PARENT -> View将从1000转换到0,
RELATIVE_TO_SELF -> View将从100转换为0

tjjdgumg

tjjdgumg2#

好吧,下面是关于RELATIVE_TO_PARENT和RELATIVE_TO_SELF的文档说明:

public static final int RELATIVE_TO_PARENT

指定的尺寸包含一个浮点数,应该乘以正在设置动画的对象的父对象的高度或宽度。

public static final int RELATIVE_TO_SELF

指定的尺寸包含一个浮点数,应该乘以正在设置动画的对象的高度或宽度。
我看很清楚了。

相关问题