Android中摇一摇效果的实现
2015-06-27 16:26
706 查看
public class MainActivity extends Activity implements SensorEventListener { private Button clean_btn; private SensorManager mSensorManager; private Vibrator vibrator; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //得到传感器管理器 mSensorManager=(SensorManager) getSystemService(SENSOR_SERVICE); vibrator=(Vibrator) getSystemService(VIBRATOR_SERVICE); clean_btn=(Button) findViewById(R.id.clean_btn); clean_btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { clean_btn.setText("重測"); } }); } @Override protected void onResume() { super.onResume(); //获取加速传感器 mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL); } @Override protected void onStop() { super.onStop(); mSensorManager.unregisterListener(this); } @Override protected void onPause() { super.onPause(); mSensorManager.unregisterListener(this); } @Override public void onSensorChanged(SensorEvent event) { int sensortype=event.sensor.getType(); float[] values=event.values; if(sensortype==Sensor.TYPE_ACCELEROMETER) { /*因为一般正常情况下,任意轴数值最大就在9.8~10之间,只有在你突然摇动手机 *的时候,瞬时加速度才会突然增大或减少。 *所以,经过实际测试,只需监听任一轴的加速度大于14的时候,改变你需要的设置 *就OK了~~~ */ if(Math.abs(values[0])>14||Math.abs(values[1])>14||Math.abs(values[2])>14) { clean_btn.setText("搖一搖"); vibrator.vibrate(500); } } } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { //当传感器精度改变时回调该方法,Do nothing. } }
应该还算比较简单,对了不要忘记加权限:
<uses-permission android:name="android.permission.VIBRATE"/>
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories