android 震动实例

来源:互联网 发布:常见端口号https 编辑:程序博客网 时间:2024/06/10 06:03

转自:http://hi.baidu.com/bbxylife/item/a7b0d52b4506c7c0ee10f194

一、获取振动器Vibrator实例: 

Vibrator  mVibrator = (Vibrator)context.getSystemService(Context.VIBRATOR_SERVICE);Vibrator.vibrate()方法:只有1个参数的时候,第一个参数用来指定振动的毫秒数。要传递2个参数的时候,第1个参数用来指定振动时间的样本,第2个参数用来指定是否需要循环。 振动时间的样本是指振动时间和等待时间的交互指定的数组。

※下面的例子,在程序起动后等待3秒后,振动1秒,再等待2秒后,振动5秒,再等待3秒后,振动1秒
  long[] pattern = {3000, 1000, 2000, 5000, 3000,1000}; // {间隔时间,震动持续时间,间隔时间,震动持续时间,间隔时间,震动持续时间}

需要在AndroidManifest.xml里进行下类设定
<uses-permissionandroid:name=”android.permission.VIBRATE”/>

例程源码(Java)
public class VibratorTestActivity extends Activity {
   
    @Override
    public void onCreate(BundlesavedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);
       Vibrator vibrator = (Vibrator)getSystemService(VIBRATOR_SERVICE);

       long[] pattern = {3000, 1000,2000, 5000, 3000, 1000}; // OFF/ON/OFF/ON            

       vibrator.vibrate(pattern,-1);

    }

    @Override
    public booleanonTouchEvent(MotionEvent event) {
       if (event.getAction() ==MotionEvent.ACTION_MOVE) {
           Vibratorvibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);
          vibrator.vibrate(10);
       }
       return super.onTouchEvent(event);
    }
}

 

二、  android 震动效果类 收藏

设置震动( Vibration )事件中,必须要知道命令其震动的时间长短、震动事件的周期等,而在 Android 里设置的数值,皆是以毫秒( 1000 毫秒 =1 秒)来做计算,所以在做设置时,必须要注意一下,如果设置的时间值太小的话,会感觉不出来。 要让手机乖乖的震动,需创建 Vibrator 对象,通过调用 vibrate 方法来达到震动的目的,在 Vibrator 的构造器中有 4 个参数,前 3 个的值是设置震动的大小,在这边可以把数值改成一大一小,这样就可以明显感觉出震动的差异,而最后一个值是设置震动的时间。 以下的范例设置每个震动的模式都不一样,当 repeat = 0 时,震动会一直持续,若 repeat = −1 时,震动只会出现一轮,运行完毕后就不会再有动作。

view plaincopy to clipboardprint?
import android.content.Context;   
import android.os.Vibrator;   
/**  
 * 震动 如果报错请在 androidManifest.xml中加入 以下语句  
 *  
 * <uses-permission android:name="android.permission.VIBRATE" />  
 * @author alex.xin  
 *  
 */  
public class Vibrate {   
 final static String TAG = "GameEngine";   
 Vibrator vibrator;   
 long[] pattern = { 800, 50, 400, 30 }; // 震动周期   可以自己设置   
 public Vibrate(Context context) {   
  vibrator = (Vibrator) context   
    .getSystemService(context.VIBRATOR_SERVICE);   
 }   
 public void playVibrate(int type) {   
  vibrator.vibrate(pattern, type);   
  // -1不重复,非-1为从pattern的指定下标开始重复   
 }   
 public void Stop() {   
  vibrator.cancel();   
 }   


试着把震动的大小做多变化的改变,在long[]里面可以多做一些变化,上面的程序对参数的用法作了示范。

原创粉丝点击