gpt4 book ai didi

android - 如何在android中从下到上对角地缩放动 Canvas 局?

转载 作者:太空狗 更新时间:2023-10-29 16:02:32 25 4
gpt4 key购买 nike

我正在尝试在 RelativeLayout 上使用 Scale Animation。我想从左角到右角缩放图像,即从下到上对角线(从左到右)。我使用了以下代码行,但没有得到预期的结果。谁能用简单的话向我解释一下 pivotx 和 pivoty 的作用?

ScaleAnimation scale = new ScaleAnimation(0, 1, 1, 0);

最佳答案

我正在使用以下代码从左下角到右上角为 ImageView 设置动画。即从下到上对角线。

img = (ImageView) findViewById(R.id.img);

ScaleAnimation scaleAnim = new ScaleAnimation(
0f, 1f,
0f, 1f,
Animation.ABSOLUTE, 0,
Animation.RELATIVE_TO_SELF , 1);
scaleAnim.setDuration(10000);
scaleAnim.setRepeatCount(0);
scaleAnim.setInterpolator(new AccelerateDecelerateInterpolator());
scaleAnim.setFillAfter(true);
scaleAnim.setFillBefore(true);
scaleAnim.setFillEnabled(true);

img.startAnimation(scaleAnim);

您需要仔细地给出 pivot 及其值。

在这种情况下,我将简要介绍它是如何与文档解释一起工作的:

fromX: Horizontal scaling factor to apply at the start of the animation

toX: Horizontal scaling factor to apply at the end of the animation

fromY: Vertical scaling factor to apply at the start of the animation

toY: Vertical scaling factor to apply at the end of the animation

我们需要从小点开始动画,并希望将其缩放到它的大小。所以fromXfromY取0f,toXtoY取1f。

pivotXType: Specifies how pivotXValue should be interpreted. One of Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or Animation.RELATIVE_TO_PARENT.

pivotXValue: The X coordinate of the point about which the object is being scaled, specified as an absolute number where 0 is the left edge. (This point remains fixed while the object changes size.) This value can either be an absolute number if pivotXType is ABSOLUTE, or a percentage (where 1.0 is 100%) otherwise.

我们希望 ImageView 的左下边缘在整个动画过程中都存在。所以我们使用 pivotXType - ABSOLUTE。 0 将是整个动画中应该存在的点。

pivotYType: Specifies how pivotYValue should be interpreted. One of Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or Animation.RELATIVE_TO_PARENT.

pivotYValue: The Y coordinate of the point about which the object is being scaled, specified as an absolute number where 0 is the top edge. (This point remains fixed while the object changes size.) This value can either be an absolute number if pivotYType is ABSOLUTE, or a percentage (where 1.0 is 100%) otherwise.

ImageView Y 轴需要相对于其当前位置进行动画处理。所以 pivotYType 是 RELATIVE_TO_SELF 并且 1 是它的底角。所以底部不会随着缩放而向上移动。

希望这对您有所帮助。

关于android - 如何在android中从下到上对角地缩放动 Canvas 局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26645904/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com