【Android工具类】用户输入非法内容时的震动与动画提示——EditTextShakeHelper工具类介绍

  当用户在EditText中输入为空或者是数据异常的时候,我们可以使用Toast来提醒用户,除此之外,我们还可以使用动画效果和震动提示,来告诉用户:你输入的数据不对啊!这种方式更加的友好和有趣。

    为了完成这个需求,我封装了一个帮助类,可以很方便的实现这个效果。

    先上代码吧。

[java]  view plain  copy
 
  1. /* 
  2.  * Copyright (c) 2014, 青岛司通科技有限公司 All rights reserved. 
  3.  * File Name:EditTextShakeHelper.java 
  4.  * Version:V1.0 
  5.  * Author:zhaokaiqiang 
  6.  * Date:2014-11-21 
  7.  */  
  8.   
  9. package com.example.sharkdemo;  
  10.   
  11. import android.app.Service;  
  12. import android.content.Context;  
  13. import android.os.Vibrator;  
  14. import android.view.animation.Animation;  
  15. import android.view.animation.CycleInterpolator;  
  16. import android.view.animation.TranslateAnimation;  
  17. import android.widget.EditText;  
  18.   
  19. /** 
  20.  *  
  21.  * @ClassName: com.example.sharkdemo.EditTextShakeHelper 
  22.  * @Description:输入框震动效果帮助类 
  23.  * @author zhaokaiqiang 
  24.  * @date 2014-11-21 上午9:56:15 
  25.  *  
  26.  */  
  27. public class EditTextShakeHelper {  
  28.   
  29.     // 震动动画  
  30.     private Animation shakeAnimation;  
  31.     // 插值器  
  32.     private CycleInterpolator cycleInterpolator;  
  33.     // 振动器  
  34.     private Vibrator shakeVibrator;  
  35.   
  36.     public EditTextShakeHelper(Context context) {  
  37.   
  38.         // 初始化振动器  
  39.         shakeVibrator = (Vibrator) context  
  40.                 .getSystemService(Service.VIBRATOR_SERVICE);  
  41.         // 初始化震动动画  
  42.         shakeAnimation = new TranslateAnimation(01000);  
  43.         shakeAnimation.setDuration(300);  
  44.         cycleInterpolator = new CycleInterpolator(8);  
  45.         shakeAnimation.setInterpolator(cycleInterpolator);  
  46.   
  47.     }  
  48.   
  49.     /** 
  50.      * 开始震动 
  51.      *  
  52.      * @param editTexts 
  53.      */  
  54.     public void shake(EditText... editTexts) {  
  55.         for (EditText editText : editTexts) {  
  56.             editText.startAnimation(shakeAnimation);  
  57.         }  
  58.   
  59.         shakeVibrator.vibrate(new long[] { 0500 }, -1);  
  60.   
  61.     }  
  62.   
  63. }  

    代码非常的少哈,而且为了使用起来更加方便,我直接把动画的设置写在代码里面了,这样就不需要额外的xml文件了。

    我们可以像下面这样调用,非常简单

[java]  view plain  copy
 
  1. if (TextUtils.isEmpty(et.getText().toString())) {  
  2. new EditTextShakeHelper(MainActivity.this).shake(et);  
  3. }  

    使用之前不要忘记加上震动的权限

    <uses-permission android:name="android.permission.VIBRATE" />

    这个项目的github地址:https://github.com/ZhaoKaiQiang/EditTextShakeHelper

你可能感兴趣的:(动画,震动器)