27

指定された入力が無効な場合に振動する編集テキストを作成したいと思います。たとえば、9桁の数字が含まれているなど、数字が間違っている場合は、編集テキストが明確になり、それを作成する方法がしばらくの間振動しますか?前もって感謝します

4

5 に答える 5

52

リソースにアニメーション フォルダーを作成し、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);
}
于 2013-03-14T05:16:31.147 に答える
5

バイブレーションには、次のコードを使用します。

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" />
于 2013-03-14T05:16:15.410 に答える
0

目的の検証のために、このリスナーを 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);
        }
于 2013-03-14T05:35:21.093 に答える