• Android应用TranslateAnimation移动之后,利用视图的setLayoutPara


    Android中利用TranslateAnimation移动时,不设置mTranslateAnimation.setFillAfter(true);,而利用视图的setLayoutParams来重新定位。。。。因为mTranslateAnimation.setFillAfter(true);之后,视图的事件消失,并且还有很多其他的问题。

     


    而我们采用Animation.AnimationListener,在onAnimationEnd的方法中改变当前视图利用LayoutParams的setMargins方法重新定位位置。

    代码段,仅供参考。

    Java代码
    1. public void move() {   
    2.         jqkjScroll.setEnabled(true);   
    3.         Animation mTranslateAnimation = new TranslateAnimation(000,   
    4.                 -showheight);// 移动   
    5.   
    6.         mTranslateAnimation.setDuration(minute);   
    7.         // mAnimationSet.setFillAfter(true);   
    8.         // mTranslateAnimation.setFillAfter(true);   
    9.         mTranslateAnimation   
    10.                 .setAnimationListener(new Animation.AnimationListener() {   
    11.                     public void onAnimationStart(Animation animation) {   
    12.                         if (isNoMenu == false) {   
    13.                             curent.setVisibility(View.GONE);   
    14.                         }   
    15.                     }   
    16.   
    17.                     public void onAnimationEnd(Animation animation) {   
    18.                         RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(   
    19.                                 contentLayout.getLayoutParams());   
    20.                         contentImg.setImageResource(R.drawable.open);   
    21.                         params.setMargins(0, endY - startY, 00);   
    22.                         contentLayout.clearAnimation();   
    23.                         contentLayout.setLayoutParams(params);   
    24.                         jqkjScroll.scrollTo(00);   
    25.                         isMoveORShowing = false;   
    26.                     }   
    27.   
    28.                     public void onAnimationRepeat(Animation animation) {   
    29.   
    30.                     }   
    31.                 });   
    32.         contentLayout.startAnimation(mTranslateAnimation);   
    33.   
    34.     }   
    35.   
    36.     public void show() {   
    37.         jqkjScroll.setEnabled(false);   
    38.         Animation mTranslateAnimation = new TranslateAnimation(000,   
    39.                 showheight);// 移动   
    40.         mTranslateAnimation.setDuration(minute);   
    41.         mTranslateAnimation   
    42.                 .setAnimationListener(new Animation.AnimationListener() {   
    43.                     public void onAnimationStart(Animation animation) {   
    44.                         if (isNoMenu == false) {   
    45.                             curent.setVisibility(View.VISIBLE);   
    46.                         }   
    47.                     }   
    48.   
    49.                     public void onAnimationEnd(Animation animation) {   
    50.                         contentImg.setImageResource(R.drawable.close);   
    51.                         isMoveORShowing = false;   
    52.                         contentLayout.clearAnimation();   
    53.                         RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(   
    54.                                 contentLayout.getLayoutParams());   
    55.                         params.setMargins(0, showheight + endY - startY, 00);   
    56.   
    57.                         contentLayout.setLayoutParams(params);   
    58.                     }   
    59.   
    60.                     public void onAnimationRepeat(Animation animation) {   
    61.   
    62.                     }   
    63.                 });   
    64.         contentLayout.startAnimation(mTranslateAnimation);   
    65.     }  
  • 相关阅读:
    kaggle之员工离职分析
    Titanic幸存预测分析(Kaggle)
    学习python,第五篇
    VLAN入门知识
    复习下VLAN的知识
    复习下网络七层协议
    学习python,第四篇:Python 3中bytes/string的区别
    学习python,第三篇:.pyc是个什么鬼?
    学习python,第二篇
    学习python,第一篇
  • 原文地址:https://www.cnblogs.com/xgjblog/p/4664385.html
Copyright © 2020-2023  润新知