Android 仿3g体育门户客户端赛事图标浮出效果


http://blog.csdn.net/t12x3456/article/details/9006087

http://blog.csdn.net/t12x3456/article/details/9006087

http://blog.csdn.net/t12x3456/article/details/9006087

http://blog.csdn.net/t12x3456/article/details/9006087



Android 仿3g体育门户客户端赛事图标浮出效果

分类: Android   2121人阅读  评论(1)  收藏  举报

   最近在玩3g体育门户客户端的时候,看到这样个效果: 轻触赛事图标,会有一个图标变大浮出的效果.,蛮有意思的.于是就把仿照它做了一个.

  这个是原图:               

        Android 仿3g体育门户客户端赛事图标浮出效果_第1张图片

实际上是给图标的触摸事件中添加了一个缩放的动画,代码如下.

[java]  view plain copy
  1. package com.test;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.view.MotionEvent;  
  6. import android.view.View;  
  7. import android.view.View.OnTouchListener;  
  8. import android.view.animation.Animation;  
  9. import android.view.animation.ScaleAnimation;  
  10. import android.widget.Button;  
  11.   
  12. public class AnimationButtonActivity extends Activity {  
  13.     @Override  
  14.     public void onCreate(Bundle savedInstanceState) {  
  15.         super.onCreate(savedInstanceState);  
  16.         setContentView(R.layout.main);  
  17.         final Button test = (Button) findViewById(R.id.test_bt);  
  18.           
  19.           
  20. //        float f1 = 1.0F;  
  21. //        float f2 = 1.3F;  
  22. //        int j = 1;  
  23. //        float f3 = 0.5F;  
  24.          
  25.         //参数说明:  
  26.         //float fromX 动画起始时 X坐标上的伸缩尺寸  
  27.         //float toX 动画结束时 X坐标上的伸缩尺寸   
  28.         //float fromY 动画起始时Y坐标上的伸缩尺寸   
  29.         //float toY 动画结束时Y坐标上的伸缩尺寸   
  30.         //int pivotXType 动画在X轴相对于物件位置类型   
  31.         //float pivotXValue 动画相对于物件的X坐标的开始位置   
  32.         //int pivotYType 动画在Y轴相对于物件位置类型   
  33.         //float pivotYValue 动画相对于物件的Y坐标的开始位置  
  34.   
  35.         final Animation logoAnimation = new ScaleAnimation(1.0F, 1.3F, 1.0F, 1.3F, 10.5F, 10.5F);  
  36.         //设置动画间隔  
  37.         logoAnimation.setDuration(100L);  
  38.           
  39.         test.setOnTouchListener(new OnTouchListener() {  
  40.               
  41.             @Override  
  42.             public boolean onTouch(View v, MotionEvent event) {  
  43.                                 //开始动画   
  44.                                 test.startAnimation(logoAnimation);  
  45.                 return false;  
  46.             }  
  47.         });  
  48.     }  
  49. }  







Android 防止控件被重复点击

分类: Android   6199人阅读  评论(9)  收藏  举报

在开发中经常会遇到这样的情况,一个按钮点击后会弹出Toast或者Dialog,如果快速重复地点击,则Toast则会重复地出现. 而我们想要的效果是一定时间内的点击只生效一次,或者说这种快速且重复的点击为无效点击.


解决的思路如下:

 1. 需要定义一个全局变量 lastClickTime, 用来记录最后点击的时间.

 2. 每次点击前需要进行判断, 用lastClickTime 和当前时间想比较,并且更新最后点击时间,若小于临界值,则算无效点击,不触发事件

 注:其实用时间去判断重复点击,更多的是防止短时间大量重复或者也可是说是无效的操作, 而间隔时间要根据具体项目中需求情况而定. 这里其实还有一种更好的做法,就是利用java中的信号量Semaphore,以后有时间我会介绍这种方法.

下面请看代码:

工具类:

[java]  view plain copy
  1. public class CommonUtils {  
  2.     private static long lastClickTime;  
  3.     public static boolean isFastDoubleClick() {  
  4.         long time = System.currentTimeMillis();  
  5.         long timeD = time - lastClickTime;  
  6.         if ( 0 < timeD && timeD < 800) {     
[java]  view plain copy
  1. lastClickTime = time;  
  2. return true;
  3.  }
  4.  return false
  5. }
  6. }  


  7. public void onClick(View v) {    
  8.     if (Utils.isFastDoubleClick()) {    
  9.         return;    
  10.     }else{  
  11.         //弹出Toast或者Dialog  
  12.    }  
  13.  } 

  14. 这样,两次点击时间相隔小于800ms,便不会触发事件,具体的临界时间可以根据需求自己修改.<br>  

  15. 上一篇






你可能感兴趣的:(android,android)