Android该系统提供的服务--Vibrator(振子)
——转载请注明出处:coder-pig
Vibrator简单介绍与相关方法:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY29kZXJfcGln/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" >
简单demo——设置频率不同的振动器
对于Vibrator用的最广泛的莫过于所谓的手机按摩器类的app,在app市场一搜,一堆,笔者随便下了几个下来瞅瞅
,都是大同小异的,这点小玩意居然有8W多的下载量...好吧,好像也不算多,只是普遍功能都是切换振动频率来完毕
所谓的按摩效果,是否真的有效就不得而知了,那么接下来
我们就来实现一个简单的按摩器吧!
核心事实上就是vibrate()中的数组的參数,依据自己需求写一个数组就能够了!
由于模拟器不会振动的,所以须要在手机上执行才会有效果哦!
效果图:
代码也非常easy,布局的话就四个简单的button而已
activity_main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.jay.example.vibratordemo.MainActivity" > <Button android:id="@+id/btnshort" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="短振动" /> <Button android:id="@+id/btnlong" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="长振动" /> <Button android:id="@+id/btnrhythm" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="节奏振动" /> <Button android:id="@+id/btncancle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="取消振动" /> </LinearLayout>
接着就是MainActivity的编写了,这里和上一节的写法是一样的,让Activity类实现OnClickListener接口
重写onClick方法,依据不同的view的id就能够推断是哪个button点击了,这样的写法的优点是对于组件较多的
情况这样写能够简化代码!
MainActivity.java:
package com.jay.example.vibratordemo; import android.app.Activity; import android.app.Service; import android.os.Bundle; import android.os.Vibrator; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class MainActivity extends Activity implements OnClickListener{ private Button btnshort; private Button btnlong; private Button btnrhythm; private Button btncancel; private Vibrator myVibrator; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnshort = (Button) findViewById(R.id.btnshort); btnlong = (Button) findViewById(R.id.btnlong); btnrhythm = (Button) findViewById(R.id.btnrhythm); btncancel = (Button) findViewById(R.id.btncancle); btnshort.setOnClickListener(this); btnlong.setOnClickListener(this); btnrhythm.setOnClickListener(this); btncancel.setOnClickListener(this); //获得系统的Vibrator实例: myVibrator = (Vibrator) getSystemService(Service.VIBRATOR_SERVICE); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btnshort: myVibrator.cancel(); myVibrator.vibrate(new long[]{100,200,100,200}, 0); Toast.makeText(getApplicationContext(), "短振动", Toast.LENGTH_SHORT).show(); break; case R.id.btnlong: myVibrator.cancel(); myVibrator.vibrate(new long[]{100,100,100,1000}, 0); Toast.makeText(getApplicationContext(), "长振动", Toast.LENGTH_SHORT).show(); break; case R.id.btnrhythm: myVibrator.cancel(); myVibrator.vibrate(new long[]{500,100,500,100,500,100}, 0); Toast.makeText(getApplicationContext(), "节奏振动", Toast.LENGTH_SHORT).show(); break; case R.id.btncancle: myVibrator.cancel(); Toast.makeText(getApplicationContext(), "取消振动", Toast.LENGTH_SHORT).show(); } } }
最后别忘了在AndroidManifest.xml文件里加入权限哦!
<uses-permission android:name="android.permission.VIBRATE"/>
好了,基本使用方法事实上也是非常easy的,这里就不多说了,另外上面也说了,虚拟机是没有震动效果的,所以
须要把应用公布到手机上才干检測效果了!參考代码下载:vibratorDemo.rar
为了方便各位,直接把apk导出来吧,直接下载安装到手机就能够測试效果了,当然仅仅是个小demo,不会
推送广告,乱发短信什么的=-=!安装时能够查看所须要的权限!apk下载:vibratorDemo.apk