android手机中的震动由Vibrator实现。设置震动事件,需要知道其震动的时间长短、震动的周期等。
在android中,震动的时间一毫秒计算(1/1000秒),所以如果设置的时间值太小,会感觉不出来。
通过调用Vibrator的vibrate(long[] pattern, int repeat)方法实现。
前一个参数为设置震动的效果的数组,第二个参数为 -1表示只震动一次,为0则震动会一直持续。
一个demo:
package com.shao.vibrator; import android.app.Activity; import android.os.Bundle; import android.os.Vibrator; import android.widget.CompoundButton; import android.widget.Toast; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.ToggleButton; public class VibratorActivity extends Activity {}, -1); showToast("OK"); }else{} } }); tog2.setOnCheckedChangeListener(new OnCheckedChangeListener() {}, 0); showToast("OK"); }else{} } }); tog3.setOnCheckedChangeListener(new OnCheckedChangeListener() {}, 0); showToast("OK"); }else{} } }); } private void init(){} private void showToast(String msg){} } xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <RelativeLayout android:layout_marginTop="20dp" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="短震动" /> <ToggleButton android:id="@+id/tog1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textOn="关闭" android:textOff="打开" android:layout_alignParentRight="true" /> </RelativeLayout> <RelativeLayout android:layout_marginTop="20dp" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="长震动" /> <ToggleButton android:id="@+id/tog2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textOn="关闭" android:textOff="打开" android:layout_alignParentRight="true" /> </RelativeLayout> <RelativeLayout android:layout_marginTop="20dp" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="节奏震动" /> <ToggleButton android:id="@+id/tog3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textOn="关闭" android:textOff="打开" android:layout_alignParentRight="true" /> </RelativeLayout> </LinearLayout>