gpt4 book ai didi

Android布局动画问题

转载 作者:行者123 更新时间:2023-11-29 15:31:25 27 4
gpt4 key购买 nike

我正在尝试制作过渡动画,但它没有给我正确的结果

我的布局看起来像这样:

  • LinearView
    • ScrollView
      • 线性 View
        • 瓷砖1
        • 方 block 2
        • 方 block 3
    • ScrollView 子组
      • 线性 View
        • 瓷砖4
        • 方 block 5
        • 方 block 6

Root 的方向设置为水平,GroupsSubGroups 的宽度和高度设置为父级填充。

我想要的是动画化 Groups 翻译到屏幕的左边,这样只有 ~40 dp 仍然显示,并且 SubGroups 翻译到左后右 Groups,因此只有一小部分 Groups 显示,而 90% 的 SubGroups 可见。

这可能吗?感谢您的帮助!

最佳答案

我想你的意思是这样做:

TranslateAnimation animateGroups = new TranslateAnimation(0,widthScreen - 40 , 0 , 0);
animateGroups.setDuration(1200);
animateGroups.setFillAfter(true);

TranslateAnimation animateSubGroups = new TranslateAnimation(0,widthScreen - 10 , 0 , 0);
animateSubGroups.setDuration(1200);
animateSubGroups.setFillAfter(true);

scrollViewGroups.startAnimation(animateGroups);
scrollViewSubGroups.startAnimation(animateSubGroups);

注意:您可以使用 DiplayMetrics 类获取屏幕尺寸,如果你想将像素转换为 dp ,引用 this

编辑:在动画结束后更改 View 的位置 为此,您应该在动画中添加一个监听器,

animateGroups.addAnimationListener(AnimationListener);

并重写这样的方法:

 @Override
public void onAnimationEnd(Animation animation){
scrollViewGroups.setPadding(0, 0 , screenWidth-40 , 0 ) ;
//or you can set the Margin like this(i supposed that your scrollView is in a RelativeLayout
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)scrollViewGroups.getLayoutParams();
params.setMargin(0, 0 , screenWidth-40 , 0);
scrollViewGroups.setLayoutParams(params);
}

关于Android布局动画问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6131794/

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