Подтвердить что ты не робот

вибрация Edittext в андроиде

Я хочу создать текст редактирования, который будет вибрировать, если введенный ввод недействителен. например, отредактировать текст для номера, если номер неправильный, так как он содержит 9 цифр, чем текст редактирования станет ясным и какое-то время будет вибрировать, как его создать? заранее спасибо

4b9b3361

Ответ 1

Создайте папку anim в ресурсах, а затем создайте файл с именем 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="http://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);
}

Ответ 2

Если кто-то ищет способ сделать то, что предлагал программный проект Прия, вы можете попробовать это.

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

А потом:

myEditText.startAnimation(shakeError());

Ответ 3

Для вибрации используйте следующий код.

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

Затем в методе OnTextChanged Listener используйте следующий код.

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

И не забывайте, что вам нужно добавить разрешение манифеста (после </application>):

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

Ответ 4

Создайте shake.xml в папке с shake.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:fromXDelta="-10"
        android:toXDelta="10"
        android:repeatCount="5"
        android:repeatMode="reverse"
        android:interpolator="@android:anim/linear_interpolator"
        android:duration="70" />
</set>

После этого добавьте анимацию для кнопки. Я написал этот код в Котлине для простоты.

button.setOnClickListener {
      button.startAnimation(AnimationUtils.loadAnimation(context, R.anim.shake)
}

Ответ 5

Вы должны добавить этого прослушивателя в EditText для необходимой проверки,

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);
        }