在android中的Edittext的振动

我想创build一个编辑文本,如果给定的input是无效的将震动。 例如编辑文本的数字,如果数字是错误的,因为它包含9位数字比编辑文本将变得清晰,并会震动一段时间如何创build? 提前致谢

Solutions Collecting From Web of "在android中的Edittext的振动"

在资源中创buildanim文件夹,然后创build文件nmaed shake.xml并粘贴下面的代码

<?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromXDelta="0" android:toXDelta="10" android:duration="1000" android:interpolator="@anim/cycle_7" /> 

和另一个文件cycle_7.xml

 <?xml version="1.0" encoding="utf-8"?> <cycleInterpolator xmlns:android="schemas.android.com/apk/res/android" android:cycles="7" /> 

然后在你的java文件中

 if(invalid)//check your input { Animation shake = AnimationUtils.loadAnimation(Login.this, R.anim.shake); editText.startAnimation(shake); } 

如果有人正在寻找一种方法来执行@ Priya以编程方式build议,那么你可以试试这个。

 public TranslateAnimation shakeError() { TranslateAnimation shake = new TranslateAnimation(0, 10, 0, 0); shake.setDuration(500); shake.setInterpolator(new CycleInterpolator(7)); return shake; } 

接着:

 myEditText.startAnimation(shakeError()); 

振动使用下面的代码。

 Vibrator vibe = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE); 

然后,在OnTextChanged侦听器方法使用下面的代码。

 vibe.vibrate(50); // 50 is time in ms 

不要忘记,您需要将清单(在</application>标签之后)添加到清单中:

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

您应该将此侦听器添加到EditText以进行所需的validation,

 editText.addTextChangedListener(new TextWatcher() { public void onTextChanged(CharSequence s, int start, int before, int count) { // Write your logic here if(condition satisfy) // call vibrate(); } public void beforeTextChanged(CharSequence s, int start, int count, int after) { } public void afterTextChanged(Editable s) { } }); public void vibrate() { Vibrator vibrate= (Vibrator)context.getSystemService(Context.VIBRATOR_SERVICE) ; vibrate.vibrate(50); }