Android的布局问题动画

我试图动画过渡,但它不给我正确的结果

我有一个布局,看起来像这样:

  • LinearView Root
    • 滚动型Groups
      • LinearView
        • Tile1
        • Tile2
        • Tile3
    • 滚动型SubGroups
      • LinearView
        • Tile4
        • Tile5
        • Tile6

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,请参阅本

编辑: 更改您的视图的地方动画结束后,要做到这一点,你应该增加一个监听器在您的动画,

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);
}

分类:安卓 时间:2015-03-14 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.290 (s). 10 q(s)