android手机震动的节奏例子--Vibrator对象及周期运用

范例说明

提到了与手机的交互控制,就不能不提到手机震动事件。手机的震动,可以是一种提醒或替换铃声的事件,所以在这个范例中,将学到如何触发手机震动事件,虽然震动是手机默认的模式,但通过程序的辅助,可以做更精密的控制,诸如震动周期、持续时间等。

设置震动( Vibration )事件中,必须要知道命令其震动的时间长短、震动事件的周期等,而在 Android 里设置的数值,皆是以毫秒( 1000 毫秒 =1 秒)来做计算,所以在做设置时,必须要注意一下,如果设置的时间值太小的话,会感觉不出来。

要让手机乖乖的震动,需创建 Vibrator 对象,通过调用 vibrate 方法来达到震动的目的,在 Vibrator 的构造器中有 4 个参数,前 3 个的值是设置震动的大小,在这边可以把数值改成一大一小,这样就可以明显感觉出震动的差异,而最后一个值是设置震动的时间。

以下的范例设置每个震动的模式都不一样,当 repeat = 0 时,震动会一直持续,若 repeat = −1 时,震动只会出现一轮,运行完毕后就不会再有动作。

 

范例程序

src/irdc.ex05 _ 06/EX05 _ 06.java

主程序中,判断 ToggleButton 是否有被启动,如果单击“ ON ”的话,就会启动震动模式,并会跳出 Toast 文字;如果再一次单击“ OFF ”,就会把震动关掉。

 

/* import 程序略 */

import android.app.Service;

import android.os.Vibrator;

 

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

 

    /* 短震动 */

    mtogglebutton1.setOnClickListener(new OnClickListener()

    {

      public void onClick(View v)

      {

        if (mtogglebutton1.isChecked())

        {

          /* 设置震动的周期 */

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

        }

      }

    });

 

    /* 长震动 */

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

        }

      }

    });

  }

}

 

AndroidManifest.xml

震动事件必须允许 android.permission.VIBRATE 权限。

 

 

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

 

扩展学习

震动事件的控制,虽是通过震动时间周期来表现出差异,但在实际设计上,可以设计如接收到短信、单击按钮的瞬间来达到简短震动提示。笔者也常在一些 Android 开发的游戏中应用震动的事件,如“球入迷宫”的游戏,当球碰到墙壁时,就可以震动手机。

试着把震动的大小做多变化的改变,在 long[] 里面可以多做一些变化,上面的程序对参数的用法作了示范,而以下的震动效果,就交给读者自己试试看了!

 

mVibrator01.vibrate

(

  new long[]{10000,500,10000,500,10000,500,10000},0

);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 是一种手机提醒的方式,可以在接收到消息、来电或者其他事件时通过震动的方式提示用户。在Android中,可以使用Vibrator类来控制手机震动,需要在AndroidManifest.xml文件中添加震动权限声明。具体的实现可以参考以下代码: ``` // 获取Vibrator实例 Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); // 震动500毫秒 vibrator.vibrate(500); ``` ### 回答2: Android手机震动是一种通过振动马达来产生震动效果的功能。它可以通过调用系统提供的震动API来实现。 Android手机震动功能广泛应用于各种应用程序中,例如来电提醒、消息通知、游戏反馈等。当手机处于静音或振动模式时,来电时手机会通过震动让用户知道有来电;当手机接收到消息或通知时,也会通过震动提醒用户;在游戏中,震动可以增强用户的体验和反馈,例如在打击敌人或取得游戏进步时会触发震动效果。 开发者可以通过使用Android提供的Vibrator类来控制手机震动功能。首先需要获取到Vibrator实例,然后调用其vibrate方法即可触发震动vibrate方法通常有几种重载形式,可以指定震动持续时间、震动模式等参数。 同时,Android还提供了一些预定义的震动模式,开发者可以通过使用系统提供的常量来实现不同的震动效果,如长震动、短震动、循环震动等。此外,还可以自定义震动模式,通过指定一系列的持续时间和间隔时间来实现特殊的震动效果。 总之,Android手机震动是一项非常实用和丰富的功能,通过它可以给用户带来更好的使用体验,同时也为开发者提供了更多的交互反馈方式。 ### 回答3: Android手机震动功能是一种可以通过设置来调整的功能,用于在接收到新消息、来电或其他事件时提醒用户。 首先,用户可以在手机的设置菜单中找到“声音和振动”或类似的选项。在这个菜单中,用户可以选择是否允许手机震动。当用户将此设置打开时,手机在特定事件发生时就会震动。 通常情况下,当有新消息、来电或其他通知时,手机会发出声音和震动。但是,用户也可以根据自己的需要进行个性化设置。例如,可以设置仅在静音模式下允许震动,或者禁用声音但保留震动等。 此外,有些应用程序还提供了自定义震动模式选项。用户可以根据自己的喜好和需求,选择不同的震动模式。例如,有的人喜欢强烈的长震动,而有的人则喜欢短促的轻微震动。通过这些设置,用户可以根据自己的喜好来调整震动效果。 总的来说,Android手机震动功能是为了提醒用户新消息、来电或其他事件的一种方式。通过设置菜单,用户可以自定义是否启用震动、在哪些情况下震动以及震动的效果。这种功能的存在可以让用户在不方便或无法依赖声音提醒时,通过震动来感知到新消息或事件的到来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值