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年] ==================================================================
  • 相关阅读:
    在CSS里加下面任何一行代码都可以解决图片之间的间隙
    MasterPage Toolbar
    图解虚拟机VMware服务自动启动
    WSUS完全部署
    DIV全屏覆盖网页
    大型架构.net平台篇(WEB层均衡负载nginx)
    组策略设置及导出导入方法[附上设置好的组策略]
    如何設定定時關機?
    gridview获取当前行索引的方法
    no suject
  • 原文地址:https://www.cnblogs.com/ErLiangCode/p/4678751.html
Copyright © 2011-2022 走看看