前言:

Vibrator简介:

下面我们就来写个简单的例子,来熟悉下这个Vibrator的用法!

1.获得Vibrator实例:

Vibrator vb = (Vibrator)getSystemService(Service.VIBRATOR_SERVICE);

2.可以使用的相关方法:

1.stract void cancel():关闭或者停止振动器

2.tract boolean hasVibrator():判断硬件是否有振动器

3.id vibrate(long milliseconds):控制手机振动为milliseconds毫秒

4.id vibrate(long[] pattern,int repeat):指定手机以pattern指定的模式振动! 比如:pattern为new int[200,400,600,800],就是让他在200,400,600,800这个时间交替启动与关闭振动器! 而第二个则是重复次数,如果是-1的只振动一次,如果是0的话则一直振动 还有其他两个方法用得不多~ 对了,使用振动器还需要在AndroidManifest.xml中添加下述权限:

3.使用示例:设置频率不同的震动器:

对于Vibrator用的最广泛的莫过于所谓的手机按摩器类的app,在app市场一搜,一堆,笔者随便下了 几个下来瞅瞅,都是大同小异的,这点小玩意竟然有8W多的下载量...好吧,好像也不算多, 不过普遍功能都是切换振动频率来完成,而所谓的按摩效果,是否真的有效就不得而知了, 那么接下来我们就来实现一个简单的按摩器吧! 核心其实就是:vibrate()中的数组的参数,根据自己需求写一个数组就可以了! 下述代码需要在真机上进行测试!

运行效果图:

实现代码:

简单的布局文件,五个按钮:activity_main.xml:

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

android:id="@+id/btn_hasVibrator"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="判断是否有振动器" />

android:id="@+id/btn_short"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="短振动" />

android:id="@+id/btn_long"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="长振动" />

android:id="@+id/btn_rhythm"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="节奏振动" />

android:id="@+id/btn_cancle"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="取消振动" />

接着是MainActivity.java部分:

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

private Button btn_hasVibrator;

private Button btn_short;

private Button btn_long;

private Button btn_rhythm;

private Button btn_cancle;

private Vibrator myVibrator;

private Context mContext;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//获得系统的Vibrator实例:

myVibrator = (Vibrator) getSystemService(Service.VIBRATOR_SERVICE);

mContext = MainActivity.this;

bindViews();

}

private void bindViews() {

btn_hasVibrator = (Button) findViewById(R.id.btn_hasVibrator);

btn_short = (Button) findViewById(R.id.btn_short);

btn_long = (Button) findViewById(R.id.btn_long);

btn_rhythm = (Button) findViewById(R.id.btn_rhythm);

btn_cancle = (Button) findViewById(R.id.btn_cancle);

btn_hasVibrator.setOnClickListener(this);

btn_short.setOnClickListener(this);

btn_long.setOnClickListener(this);

btn_rhythm.setOnClickListener(this);

btn_cancle.setOnClickListener(this);

}

@Override

public void onClick(View v) {

switch (v.getId()) {

case R.id.btn_hasVibrator:

Toast.makeText(mContext, myVibrator.hasVibrator() ? "当前设备有振动器" : "当前设备无振动器",

Toast.LENGTH_SHORT).show();

break;

case R.id.btn_short:

myVibrator.cancel();

myVibrator.vibrate(new long[]{100, 200, 100, 200}, 0);

Toast.makeText(mContext, "短振动", Toast.LENGTH_SHORT).show();

break;

case R.id.btn_long:

myVibrator.cancel();

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

Toast.makeText(mContext, "长振动", Toast.LENGTH_SHORT).show();

break;

case R.id.btn_rhythm:

myVibrator.cancel();

myVibrator.vibrate(new long[]{500, 100, 500, 100, 500, 100}, 0);

Toast.makeText(mContext, "节奏振动", Toast.LENGTH_SHORT).show();

break;

case R.id.btn_cancle:

myVibrator.cancel();

Toast.makeText(mContext, "取消振动", Toast.LENGTH_SHORT).show();

}

}

}

对了,别漏了振动器权限哦!

小结:

好了,本文我们学习了Vibrator(振动器)的基本使用,代码非常简单,还不赶紧加入到 你的APP中,让你的应用HI起来~

android vibrator,Android入门教程之Vibrator(振动器)相关推荐

  1. ​HealthKit开发快速入门教程之HealthKit数据的操作

    ​HealthKit开发快速入门教程之HealthKit数据的操作 数据的表示 在HealthKit中,数据是最核心的元素.通过分析数据,人们可以看到相关的健康信息.例如,通过统计步数数据,人们可以知 ...

  2. HealthKit开发快速入门教程之HealthKit框架体系创建健康AppID

    HealthKit开发快速入门教程之HealthKit框架体系创建健康AppID HealthKit开发准备工作 在开发一款HealthKit应用程序时,首先需要讲解HealthKit中有哪些类,在i ...

  3. HealthKit开发快速入门教程之HealthKit开发概述简介

    HealthKit开发快速入门教程之HealthKit开发概述简介 2014年6月2日召开的年度开发者大会上,苹果发布了一款新的移动应用平台,可以收集和分析用户的健康数据.该移动应用平台被命名为&qu ...

  4. nodejs入门教程之http的get和request简介及应用

    nodejs入门教程之http的get和request简介及应用 前言 上一篇文章,我介绍了nodejs的几个常用的模块及简单的案例,今天我们再来重点看一下nodejs的http模块,关于http模块 ...

  5. python语言if语句-Python入门教程之if语句的用法

    这篇文章主要介绍了Python入门教程之if语句的用法,是Python入门的基础知识,需要的朋友可以参考下 OK分享完毕!需要Python资料的可以加QQ群:832339352 进群免费领取下面资料! ...

  6. java jni helloword_JNI入门教程之HelloWorld篇

    JNI入门教程之HelloWorld篇 来源:互联网  宽屏版  评论 2008-05-31 09:07:11 本文讲述如何使用JNI技术实现HelloWorld,目的是让读者熟悉JNI的机制并编写第 ...

  7. linux lvm界面,Linux使用入门教程之LVM

    Linux使用入门教程之LVM 1.pvscan #查看当前系统是否存在 PV(物理卷) 2.fdisk -l #查看当前系统分区 3.pvcreate /dev/sda{5,6} /dev/sdb1 ...

  8. php zend framework 教程,Zend Framework入门教程之Zend_Session会话操作详解

    本文实例讲述了Zend Framework入门教程之Zend_Session会话操作.分享给大家供大家参考,具体如下: 会话命名空间 实现会话 代码: require_once "Zend/ ...

  9. 黑马程序员Flutter入门教程之Windows系统Android开发环境配置

    前置依赖环境 Windows系统要求: Win7及以上 硬盘空间除AndroidStudio外不低于400M 下载Git for windows工具,并且可以运行git命令 git version 配 ...

最新文章

  1. 2021年大数据常用语言Scala(六):基础语法学习 数据类型与操作符
  2. Exchange Server 2013之邮件存档配置
  3. python实验过程心得体会_20192416 实验四《Python程序设计》综合实践报告
  4. mysql navicat 设计表_Navicat for MySQL 如何设计报表版面
  5. mysql 5.7 主从切换_mysql5.7 主从复制的正常切换【转】
  6. 基于DDD的.NET开发框架 - ABP依赖注入
  7. Bootstrap CSS 编码规范之Class 命名规范
  8. python扫描端口脚本_python扫描端口脚本
  9. 数据库练习题总题库选择判断简答操作题
  10. 4.Node.js 微信消息管理
  11. tp5可以请求到linux根目录么,TP5 获取项目根目录路径
  12. Spring AOP的日志记录
  13. 软件度量都该度个啥?
  14. TSC TTP-244条码打印机如何批量打印二维码
  15. iOS 【iOS-切换控制器的手段及异同】
  16. 误删注册表导致键盘不可用,NumLock一直亮着
  17. ABAP 中JSON格式的转换与解析
  18. 如何调换手机桌面位置_手机桌面很乱怎么整理?简单七招让你效率更高!
  19. 干货!JAVA容器-自问自答学HashMap
  20. #1034 : 毁灭者问题

热门文章

  1. 苹果cms10好看的模板_电脑手机自适应超简洁模板
  2. go学习笔记 sync/mutex源码
  3. ACCESS数据库不能在国外英文操作系统上运行
  4. 如何推广eBay门店?
  5. Linux环境常用工具
  6. OJ:L3-001 凑零钱 DFS
  7. canvas中添加html,如何在DIV中添加html5 CANVAS
  8. 2021年潼南古溪中学高考成绩查询,重庆潼南第一中学2021年录取分数线
  9. PAT1027 打印沙漏(C++实现)
  10. 停车场画简易停车位图,简单的停车场地图怎么画图