zoukankan      html  css  js  c++  java
  • 自定义控件

    1.Relativelayout布局的子布局,在布局中在下面位置的子布局会覆盖上面的子布局

    2.对于补间动画(tween animation)而言,当动画移除屏幕,其布局依然在,布局原位置的点击事件依然可以点击,需要遍历设置子布局的enabled为false

     1 public class AnimationUtils {
     2 
     3     /**
     4      * 菜单出去动画
     5      * @param layout   需要动画的布局
     6      * @param startOffSet   延迟时间
     7      */
     8     public static void startRotateOutAnimation(RelativeLayout layout,long startOffSet) {
     9         //
    10         tweenEnabled(layout, false);
    11 
    12         RotateAnimation rotateOut = new RotateAnimation(
    13                 0, -180,
    14                 Animation.RELATIVE_TO_SELF, 0.5f,
    15                 Animation.RELATIVE_TO_SELF, 1);
    16         rotateOut.setDuration(500);
    17         rotateOut.setStartOffset(startOffSet);
    18         rotateOut.setFillAfter(true);//设置动画结束时,停留在结束的状态
    19         layout.startAnimation(rotateOut);
    20 
    21     }
    22 
    23 
    24     /**
    25      * 菜单进入动画
    26      * @param layout   需要动画的布局
    27      * @param startOffSet   延迟时间
    28      */
    29     public static void startRotateInAnimation(RelativeLayout layout,long startOffSet) {
    30 
    31         tweenEnabled(layout, true);
    32 
    33         RotateAnimation rotateOut = new RotateAnimation(
    34                 -180, 0,
    35                 Animation.RELATIVE_TO_SELF, 0.5f,
    36                 Animation.RELATIVE_TO_SELF, 1);
    37         rotateOut.setDuration(500);
    38         rotateOut.setStartOffset(startOffSet);
    39         rotateOut.setFillAfter(true);//设置动画结束时,停留在结束的状态
    40         layout.startAnimation(rotateOut);
    41     }
    42 
    43     /**
    44      * 补间动画移除后布局仍在
    45      * @param b
    46      */
    47     private static void tweenEnabled(RelativeLayout layout, boolean b) {
    48         for(int i = 0; i < layout.getChildCount(); i++) {
    49             layout.getChildAt(i).setEnabled(b);
    50         }
    51     }
    52 }

    3.虽然RelativeLayout的子布局因为位置的原因会发生覆盖现象,但是button、checkbox等按钮类具有很强的抢夺事件功能。

    4.为了避免双击按钮,产生一个动画没结束第二个动画再次运行,使用动画监听类,保证一个动画结束后才可以开始另一个动画:分别在动画开始&结束中记录一个变量++/--,只要变量不为0,就return。

    如有不足之处,欢迎各位批评指正@评论        ~二两 [2015年] ==================================================================
  • 相关阅读:
    P3383 【模板】线性筛素数
    POJ2431-Expedition【优先队列+贪心】
    HDU1087
    HDU1029
    最小生成树之Kruskal算法
    AC自动机模板
    328闯关解析
    php可获取客户端信息
    $( ).focus()与$( )[0].focus()区别
    RegExp类型和text()方法
  • 原文地址:https://www.cnblogs.com/ErLiangCode/p/4678751.html
Copyright © 2011-2022 走看看