码迷,mamicode.com
首页 > 其他好文 > 详细

自定义控件

时间:2015-07-26 22:31:26      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:

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。

自定义控件

标签:

原文地址:http://www.cnblogs.com/ErLiangCode/p/4678751.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!