- 浏览: 639502 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (142)
- Android (38)
- hibernate (12)
- java基础 (18)
- spring (5)
- struts1.x (8)
- struts2.x (7)
- web开发 (11)
- tomact (1)
- jbpm3.2 (2)
- jpa (2)
- strutstest (1)
- js (3)
- WebWork (2)
- 数据库 (5)
- mysql (6)
- myeclipse和eclipse (8)
- java与办公 (2)
- linux (10)
- 性能调优 (2)
- 搜索引擎 (1)
- urlrewritefilter (1)
- Git (3)
- Dos (1)
- Chrome (1)
- PLMN (1)
最新评论
-
3xxx:
你这个靠谱。谢谢。
git push用法和常见问题分析 -
lord_is_layuping:
mark
git push用法和常见问题分析 -
calatustela:
@Resource是名字优先注入,可以用来注入Map之类的常量 ...
spring 注解@Resource 和 @Autowired -
Mr.Cheney:
repo sync 下载耗时太久了, 有没有国内的站可下编译环 ...
使用repo下载google 的android4.4 源码,和编译.运行 -
北极光之吻:
kslinabc 写道请问楼主,4.4下载下来有多大,为啥我这 ...
使用repo下载google 的android4.4 源码,和编译.运行
Vibrator对象及周期运用
提到了与手机的交互控制,就不能不提到手机震动事件。手机的震动,可以是一种提醒或替换铃声的事件,所以在这个范例中,将学到如何触发手机震动事件,虽然震动是手机默认的模式,但通过程序的辅助,可以做更精密的控制,诸如震动周期、持续时间等。
设置震动(Vibration)事件中,必须要知道命令其震动的时间长短、震动事件的周期等,而在Android里设置的数值,皆是以毫秒(1000毫秒=1秒)来做计算,所以在做设置时,必须要注意一下,如果设置的时间值太小的话,会感觉不出来。
要让手机乖乖的震动,需创建Vibrator对象,通过调用vibrate方法来达到震动的目的,在Vibrator的构造器中有4个参数,前3个的值是设置震动的大小,在这边可以把数值改成一大一小,这样就可以明显感觉出震动的差异,而最后一个值是设置震动的时间。
以下的范例设置每个震动的模式都不一样,当repeat = 0时,震动会一直持续,若repeat = ?1时,震动只会出现一轮,运行完毕后就不会再有动作。
主程序中,判断ToggleButton是否有被启动,如果单击"ON"的话,就会启动震动模式,并会跳出Toast文字;如果再一次单击"OFF",就会把震动关掉。
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(); } } }); } }
Vibrator对象及周期运用
提到了与手机的交互控制,就不能不提到手机震动事件。手机的震动,可以是一种提醒或替换铃声的事件,所以在这个范例中,将学到如何触发手机震动事件,虽然震动是手机默认的模式,但通过程序的辅助,可以做更精密的控制,诸如震动周期、持续时间等。
设置震动(Vibration)事件中,必须要知道命令其震动的时间长短、震动事件的周期等,而在Android里设置的数值,皆是以毫秒(1000毫秒=1秒)来做计算,所以在做设置时,必须要注意一下,如果设置的时间值太小的话,会感觉不出来。
要让手机乖乖的震动,需创建Vibrator对象,通过调用vibrate方法来达到震动的目的,在Vibrator的构造器中有4个参数,前3个的值是设置震动的大小,在这边可以把数值改成一大一小,这样就可以明显感觉出震动的差异,而最后一个值是设置震动的时间。
以下的范例设置每个震动的模式都不一样,当repeat = 0时,震动会一直持续,若repeat = ?1时,震动只会出现一轮,运行完毕后就不会再有动作。
主程序中,判断ToggleButton是否有被启动,如果单击"ON"的话,就会启动震动模式,并会跳出Toast文字;如果再一次单击"OFF",就会把震动关掉。
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 ); |
如果想隐藏,那么只需要加上finish()
发表评论
-
如何实现Android 布局背景模糊化处理
2015-03-25 10:09 20742在模仿 IOS 密码输入页面的时候发现其背景有模糊处理,于是 ... -
Android中内容观察者的使用---- ContentObserver类详解 (转)
2014-10-27 15:27 1362http://www.cnblogs.com/slider ... -
监听未接来电
2014-10-27 14:41 2843这里主要是总结一下如何监听有未接来电的问题 1.1 ... -
Android 4.4 Settings 应用初步分析
2014-10-17 17:19 8231一次偶然要在设置里面增加一个菜单,需要修改到sett ... -
Android 使用 AndroidTestCase 的步骤
2014-10-17 15:23 2446Android 使用 AndroidTestCase 的步骤 ... -
property_get/property_set
2014-08-12 16:37 2126每个属性都有一个名称和值,他们都是字符串格式。属性被大量使 ... -
Android设置RadioButton在文字的右边
2014-03-11 09:52 2745<?xml version=&quo ... -
android 常见错误
2014-03-11 09:10 1034问题1:android.view.WindowM ... -
android 4.3之后使用ccache提供编译速度
2014-03-06 21:32 10077ccache(“compiler cache”的缩写)是一个 ... -
修改vid 导致adb 找不到手机
2014-03-05 21:51 1184修改vid 导致adb 找不到手机 linux下面的方法 ... -
android adb配置
2014-02-23 19:39 808linux ubuntu12 1. 配置环境变量 sud ... -
Android 类似未读短信图标显示数字效果的分析
2014-01-07 13:36 13360之前一直以为是 ... -
Android 中dp 和px 转换及原理分析
2014-01-07 12:15 5031具体的转换方法如下,网上都是有的,但是自己看了之后感觉 ... -
eclispe 更新sdk Connection to https://dl-ssl.google.com refused
2013-12-26 14:46 4730解决办法是:将https://修改为http://修改方法 ... -
使用repo下载google 的android4.4 源码,和编译.运行
2013-12-20 14:44 70639使用repo下载google 的android4.4 源码 ... -
Android中gravity与layout_gravity的区别, Padding 与 margin 区别
2013-12-03 09:03 1625原文: http://hi.baidu.com/doyee ... -
android ViewFlipper的使用
2013-10-10 09:36 2486http://blog.sina.com.cn/s/blo ... -
Android 中 PopupWindow 响应返回键并关闭的问题
2013-09-24 16:16 1589PopupWindow 跟我们的 Activity 不一样 ... -
android.view.WindowManager$BadTokenException: Unable to add window -- token null
2013-06-26 22:42 3281今天在创建一个窗口的时候老是报错,很少郁闷。 引起错误的 ... -
Android处理Home键方法小结
2013-06-18 10:06 23335昨天需要处理一个问 ...
相关推荐
Vivrator--android手机震动的节奏.(转)
android 手机震动的节奏 Vibrator
5.6 手机震动的节奏 5.7 图文可视化提醒 5.8 状态栏的图标与文字提醒 5.9 搜索手机通讯录自动完成 5.10 取得联系人资料 5.11 制作有图标的文件资源 .管.理. 器 5.12 还原...
5.6 手机震动的节奏——Vibrator对象及周期运用 5.7 图文可视化提醒——Toast与LinearLayoutView 5.8 状态栏的图标与文字提醒——NotificationManager与Notification对象的应用 5.9 搜索手机通讯录自动完成——使用...
5.6 手机震动的节奏——Vibrator对象及周期运用 5.7 图文可视化提醒——Toast与LinearLayoutView 5.8 状态栏的图标与文字提醒——NotificationManager与Notification对象的应用 5.9 搜索手机通讯录自动完成——使用...
5.6 手机震动的节奏——Vibrator对象及周期运用 5.7 图文可视化提醒——Toast与LinearLayoutView 5.8 状态栏的图标与文字提醒——NotificationManager与Notification对象的应用 5.9 搜索手机通讯录自动完成——使用...
5.6 手机震动的节奏——Vibrator对象及周期运用 5.7 图文可视化提醒——Toast与LinearLayoutView 5.8 状态栏的图标与文字提醒——NotificationManager与Notification对象的应用 5.9 搜索手机通讯录自动完成——使用...
5.6 手机震动的节奏——Vibrator对象及周期运用 5.7 图文可视化提醒——Toast与LinearLayoutView 5.8 状态栏的图标与文字提醒——NotificationManager与Notification对象的应用-p178 5.9 搜索手机通讯录自动完成——...
5.3 自制发送短信程序——SmsManager与PendingIntent对象 5.4 自制发送Email程序——Intent在Email上的使用 5.5 自制日历手机数据库——实现SQLiteOpenHelper 5.6 手机震动的节奏——Vibrator对象及周期运用 ...
完整的手机数据存取功能:铃声模式设置、震动控制、WiFi服务、屏幕旋转、电池计量、温度测量、电信网络信息、SIM卡信息、拨打电话、短信解析、通讯录联系人、电子罗盘、屏幕手写等手机控制功能。 系统服务及研发的...
完整的手机数据存取功能:铃声模式设置、震动控制、WiFi服务、屏幕旋转、电池计量、温度测量、电信网络信息、SIM卡信息、拨打电话、短信解析、通讯录联系人、电子罗盘、屏幕手写等手机控制功能。 系统服务及研发的...
5.6 手机震动的节奏——Vibrator对象及周期运用 5.7 图文可视化提醒——Toast与LinearLayoutView 5.8 状态栏的图标与文字提醒——NotificationManager与Notification对象的应用 5.9 搜索手机通讯录自动完成——...
完整的手机数据存取功能:铃声模式设置、震动控制、WiFi服务、屏幕旋转、电池计量、温度测量、电信网络信息、SIM卡信息、拨打电话、短信解析、通讯录联系人、电子罗盘、屏幕手写等手机控制功能。 系统服务及研发的...
完整的手机数据存取功能:铃声模式设置、震动控制、WiFi服务、屏幕旋转、电池计量、温度测量、电信网络信息、SIM卡信息、拨打电话、短信解析、通讯录联系人、电子罗盘、屏幕手写等手机控制功能。 系统服务及研发的...
5.6 手机震动的节奏——Vibrator对象及周期运用 5.7 图文可视化提醒——Toast与LinearLayoutView 5.8 状态栏的图标与文字提醒——NotificationManager与Notification对象的应用-p178 5.9 搜索手机通讯录自动完成——...
5.6 手机震动的节奏——Vibrator对象及周期运用 5.7 图文可视化提醒——Toast与LinearLayoutView 5.8 状态栏的图标与文字提醒——NotificationManager与Notification对象的应用-p178 5.9 搜索手机通讯录自动完成——...
5.6 手机震动的节奏——Vibrator对象及周期运用 5.7 图文可视化提醒——Toast与LinearLayoutView 5.8 状态栏的图标与文字提醒——NotificationManager与Notification对象的应用-p178 5.9 搜索手机通讯录自动完成——...