Vibrate with a given pattern.

Pass in an array of ints that are the durations for which to turn on or off the vibrator in milliseconds. The first value indicates the number of milliseconds to wait before turning the vibrator on. The next value indicates the number of milliseconds for which to keep the vibrator on before turning it off. Subsequent values alternate between durations in milliseconds to turn the vibrator off or to turn the vibrator on.

To cause the pattern to repeat, pass the index into the pattern array at which to start the repeat, or -1 to disable repeating.

This method requires the caller to hold the permission VIBRATE.

Parameters

pattern an array of longs of times for which to turn the vibrator on or off. repeat the index into pattern at which to repeat, or -1 if you don't want to repeat.

下面给出一个具体的实例实现震动效果(需要在真机上运行)

1.布局文件的代码

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

>

android:id="@+id/myTextView1"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/hello"

/>

android:id="@+id/myTextView2"

android:layout_width="127px"

android:layout_height="35px"

android:layout_x="90px"

android:layout_y="33px"

android:text="@string/str_text1"

/>

android:id="@+id/myTextView3"

android:layout_width="127px"

android:layout_height="35px"

android:layout_x="90px"

android:layout_y="115px"

android:text="@string/str_text2"

/>

android:id="@+id/myTextView4"

android:layout_width="127px"

android:layout_height="35px"

android:layout_x="90px"

android:layout_y="216px"

android:text="@string/str_text3"

/>

android:id="@+id/myTogglebutton1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_x="29px"

android:layout_y="31px"

/>

android:id="@+id/myTogglebutton2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_x="29px"

android:layout_y="114px"

/>

android:id="@+id/myTogglebutton3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_x="29px"

android:layout_y="214px"

/>

2.主程序的代码

public class EX05_06 extends Activity

{

private Vibrator mVibrator01;

/** Called when the activity is first created. */

@Override public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

/*设定ToggleButton的对象*/

mVibrator01 = ( Vibrator )getApplication().getSystemService( Service .VIBRATOR_SERVICE );

final ToggleButton mtogglebutton1 = (ToggleButton) findViewById(R.id .myTogglebutton1);

final ToggleButton mtogglebutton2 = (ToggleButton) findViewById(R.id .myTogglebutton2);

final ToggleButton mtogglebutton3 = (ToggleButton) findViewById(R.id .myTogglebutton3);

/*设定ToggleButton使用OnClickListener来启动事件*/

mtogglebutton1.setOnClickListener(new OnClickListener()

{

public void onClick(View v)

{

if (mtogglebutton1.isChecked())

{

// public abstract void vibrate (long[] pattern, int repeat)

// Added in API level 1

// Vibrate with a given pattern.

//

// Pass in an array of ints that are the durations for which to turn on or off the vibrator in milliseconds. The first value indicates the number of milliseconds to wait before turning the vibrator on. The next value indicates the number of milliseconds for which to keep the vibrator on before turning it off. Subsequent values alternate between durations in milliseconds to turn the vibrator off or to turn the vibrator on.

//

// To cause the pattern to repeat, pass the index into the pattern array at which to start the repeat, or -1 to disable repeating.

//

// This method requires the caller to hold the permission VIBRATE.

//

// Parameters

// pattern an array of longs of times for which to turn the vibrator on or off.

// repeat the index into pattern at which to repeat, or -1 if you don't want to repeat.

/*设定震动的周期*/

mVibrator01.vibrate( new long[]{100,10,100,1000},-1);

/*用Toast显示震动启动*/

Toast.makeText(EX05_06.this, getString(R.string.str_ok) ,Toast.LENGTH_SHORT).show();

}

else

{

/*取消震动*/ mVibrator01.cancel();

/*用Toast显示震动取消*/

Toast.makeText(EX05_06.this, getString(R.string.str_end) ,Toast.LENGTH_SHORT).show();

}

}

});

/*设定ToggleButton使用OnClickListener来启动事件*/

mtogglebutton2.setOnClickListener(new OnClickListener()

{

public void onClick(View v)

{

if (mtogglebutton2.isChecked())

{

/*设定震动的周期*/

mVibrator01.vibrate( new long[]{100,100,100,1000},0);

/*用Toast显示震动启动*/

Toast.makeText(EX05_06.this, getString(R.string.str_ok) ,Toast.LENGTH_SHORT).show();

}

else

{

/*取消震动*/

mVibrator01.cancel();

/*用Toast显示震动取消*/

Toast.makeText(EX05_06.this, getString(R.string.str_end) ,Toast.LENGTH_SHORT).show();

}

}

});

mtogglebutton3.setOnClickListener(new OnClickListener()

{

public void onClick(View v)

{

if (mtogglebutton3.isChecked())

{

/*设定震动的周期*/

mVibrator01.vibrate( new long[]{1000,50,1000,50,1000},0);

/*用Toast显示震动启动*/

Toast.makeText(EX05_06.this, getString(R.string.str_ok) ,Toast.LENGTH_SHORT).show();

}

else

{

/*取消震动*/

mVibrator01.cancel();

/*用Toast显示震动取消*/

Toast.makeText(EX05_06.this, getString(R.string.str_end) ,Toast.LENGTH_SHORT).show();

}

}

});

}

}