Pertanyaan getaran Edittext di android


saya ingin membuat teks edit yang akan bergetar jika input yang diberikan tidak valid. misalnya mengedit teks untuk nomor jika angka salah seperti berisi 9 digit daripada mengedit teks akan menjadi jelas dan akan bergetar untuk beberapa waktu bagaimana cara membuatnya?  Terima kasih sebelumnya


18
2018-03-14 05:11


asal


Jawaban:


Buat folder anim di sumber daya dan kemudian buat file nmaed shake.xml dan tempelkan kode di bawah ini

<?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" />

dan file lain cycle_7.xml

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

dan kemudian di file java Anda

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

34
2018-03-14 05:16



Jika ada yang mencari metode untuk melakukan apa @Priya disarankan secara program, maka Anda dapat mencoba ini.

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

Lalu:

myEditText.startAnimation(shakeError());

10
2017-07-17 10:26



Untuk bergetar gunakan kode berikut.

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

Kemudian, dalam metode OnTextChanged Listener gunakan kode berikut.

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

Dan jangan lupa Anda perlu menambahkan izin ke manifes (setelah </application> menandai):

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

4
2018-03-14 05:16



Membuat shake.xml di bawah folder anim

<?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>

Setelah ini tambahkan tombol animasi untuk. Saya menulis kode ini di Kotlin untuk kesederhanaan.

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

2
2018-01-25 05:15



Anda harus menambahkan pendengar ini ke EditText untuk validasi yang Anda inginkan,

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

0
2018-03-14 05:35