如何将高度布局更改为动画(以编程方式)

艾玛米安

如何以编程方式将高度布局更改为动画?

首先:

在此处输入图片说明

之后:

在此处输入图片说明

易卜拉欣·耶尔德勒姆(Ibrahim Yildirim)

嘿朋友

测试我的代码后,我看到了一个小问题。因为我使用"scaleY"它只是“拉伸”视图。这意味着,如果视图中有一些文本或其他内容,它将只会拉伸它,并且看起来不会很好。试试吧ValueAnimator,它的工作更流畅

public void onClick(View v)
{
    if(!isBig){
        ValueAnimator va = ValueAnimator.ofInt(100, 200);
        va.setDuration(400);
        va.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            public void onAnimationUpdate(ValueAnimator animation) {
                Integer value = (Integer) animation.getAnimatedValue();
                v.getLayoutParams().height = value.intValue();
                v.requestLayout();
            }
        });
        va.start();
        isBig = true;
    }
    else{
        ValueAnimator va = ValueAnimator.ofInt(200, 100);
        va.setDuration(400);
        va.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            public void onAnimationUpdate(ValueAnimator animation) {
                Integer value = (Integer) animation.getAnimatedValue();
                v.getLayoutParams().height = value.intValue();
                v.requestLayout();
            }
        });
        va.start();
        isBig = false;
    }
}

XML:

<RelativeLayout
    android:layout_width="150dp"
    android:layout_height="100dp"
    android:layout_centerHorizontal="true"
    android:background="@android:color/holo_red_dark"
    android:onClick="onButtonClick"
    android:clickable="true">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="My Layout"/>
</RelativeLayout>

旧答案您可以使用ObjectAnimator,只需记住设置pivotY(0)它,使其仅在底部移动。自己玩,以满足您的需求:)

private boolean isBig = false;

...

public void onClick(View v)
{
    v.setPivotY(0f);
    if(!isBig){
        ObjectAnimator scaleY = ObjectAnimator.ofFloat(v, "scaleY", 2f);
        scaleY.setInterpolator(new DecelerateInterpolator());
        scaleY.start();
        isBig = true;
    }
    else{
        ObjectAnimator scaleY = ObjectAnimator.ofFloat(v, "scaleY", 1f);
        scaleY.setInterpolator(new DecelerateInterpolator());
        scaleY.start();
        isBig = false;
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Android中以编程方式更改布局高度

来自分类Dev

如何以编程方式将链接的状态更改为:active?

来自分类Dev

如何将GIMP的高度更改为小于1266像素?

来自分类Dev

如何以编程方式更改UIImageView的高度?

来自分类Dev

Android:如何以编程方式将表布局高度平均划分为表行

来自分类Dev

假定键盘布局为QWERTY,如何将键盘布局更改为Dvorak?

来自分类Dev

假定键盘布局为QWERTY,如何将键盘布局更改为Dvorak?

来自分类Dev

如何将“ \”更改为“ /”

来自分类Dev

如何在ClearCase中以编程方式将约束更改为分支?

来自分类Dev

如何在Golang中以编程方式将流程(应用)优先级从“正常”更改为“低”

来自分类Dev

Android如何以编程方式将layout_below更改为TextView

来自分类Dev

如何将图表的高度和宽度从代码更改为100%?

来自分类Dev

以编程方式将文件类型从XLSX更改为CSV

来自分类Dev

将ListView项目的状态更改为以编程方式激活?

来自分类Dev

如何将键盘布局更改为修改后的版本?

来自分类Dev

如何将键盘布局更改为芬兰语,但保持英语语言?

来自分类Dev

如何将(Joomla)子表单的管理员布局从表格模式更改为div模式?

来自分类Dev

如何将键盘布局更改为芬兰语,但保持英语语言?

来自分类Dev

如何将键盘布局更改为修改后的版本?

来自分类Dev

如何将表单标题栏的布局更改为RTL?

来自分类Dev

Ubuntu 18.04。如何将语言(键盘布局)设置更改为Ctrl + Shift?

来自分类Dev

如何将日历的开始日期布局从星期日更改为星期一?

来自分类Dev

如何将少显示的动画从“显示:阻止”更改为“显示:无”?

来自分类Dev

如何以编程方式更改为视图控制器?

来自分类Dev

如何将Android Snackbar的初始对齐方式从底部更改为顶部?

来自分类Dev

如何将单个值的表示方式从条形更改为一条线?

来自分类Dev

以编程方式获取布局的高度和宽度

来自分类Dev

以编程方式调整线性布局的高度

来自分类Dev

以编程方式调整线性布局的高度

Related 相关文章

  1. 1

    如何在Android中以编程方式更改布局高度

  2. 2

    如何以编程方式将链接的状态更改为:active?

  3. 3

    如何将GIMP的高度更改为小于1266像素?

  4. 4

    如何以编程方式更改UIImageView的高度?

  5. 5

    Android:如何以编程方式将表布局高度平均划分为表行

  6. 6

    假定键盘布局为QWERTY,如何将键盘布局更改为Dvorak?

  7. 7

    假定键盘布局为QWERTY,如何将键盘布局更改为Dvorak?

  8. 8

    如何将“ \”更改为“ /”

  9. 9

    如何在ClearCase中以编程方式将约束更改为分支?

  10. 10

    如何在Golang中以编程方式将流程(应用)优先级从“正常”更改为“低”

  11. 11

    Android如何以编程方式将layout_below更改为TextView

  12. 12

    如何将图表的高度和宽度从代码更改为100%?

  13. 13

    以编程方式将文件类型从XLSX更改为CSV

  14. 14

    将ListView项目的状态更改为以编程方式激活?

  15. 15

    如何将键盘布局更改为修改后的版本?

  16. 16

    如何将键盘布局更改为芬兰语,但保持英语语言?

  17. 17

    如何将(Joomla)子表单的管理员布局从表格模式更改为div模式?

  18. 18

    如何将键盘布局更改为芬兰语,但保持英语语言?

  19. 19

    如何将键盘布局更改为修改后的版本?

  20. 20

    如何将表单标题栏的布局更改为RTL?

  21. 21

    Ubuntu 18.04。如何将语言(键盘布局)设置更改为Ctrl + Shift?

  22. 22

    如何将日历的开始日期布局从星期日更改为星期一?

  23. 23

    如何将少显示的动画从“显示:阻止”更改为“显示:无”?

  24. 24

    如何以编程方式更改为视图控制器?

  25. 25

    如何将Android Snackbar的初始对齐方式从底部更改为顶部?

  26. 26

    如何将单个值的表示方式从条形更改为一条线?

  27. 27

    以编程方式获取布局的高度和宽度

  28. 28

    以编程方式调整线性布局的高度

  29. 29

    以编程方式调整线性布局的高度

热门标签

归档