利用Sensor实现android手机类似于微信摇一摇

转载 2012年03月24日 23:04:20


出处:http://blog.csdn.net/jamin0107/article/details/7297367

传感器有几种类型:
方向传感器: Sensor.TYPE_ORIENTATION
加速度(重力)传感器: Sensor.TYPE_ACCELEROMETER
光线传感器: Sensor.TYPE_LIGHT
磁场传感器: Sensor.TYPE_MAGNETIC_FIELD
距离(临近性)传感器: Sensor.TYPE_PROXIMITY
温度传感器: Sensor.TYPE_TEMPERATURE

 

这里我们利用的是加速度传感器

 

 

[java] view plaincopy
  1. package com.jamin.sensor;  
  2.   
  3. import android.app.Activity;  
  4. import android.app.Service;  
  5. import android.hardware.Sensor;  
  6. import android.hardware.SensorEvent;  
  7. import android.hardware.SensorEventListener;  
  8. import android.hardware.SensorManager;  
  9. import android.os.Bundle;  
  10. import android.os.Vibrator;  
  11. import android.util.Log;  
  12. import android.view.View;  
  13. import android.widget.Button;  
  14. import android.widget.TextView;  
  15.   
  16. public class SensorTestActivity extends Activity implements SensorEventListener{  
  17.     /** Called when the activity is first created. */  
  18.   
  19.   
  20.     TextView tv = null;  
  21.     Button button = null;  
  22.     SensorManager sensorManager = null;  
  23.     Vibrator vibrator = null;  
  24.   
  25.     @Override  
  26.     public void onCreate(Bundle savedInstanceState) {  
  27.         super.onCreate(savedInstanceState);  
  28.         setContentView(R.layout.main);  
  29.   
  30.         button = (Button) findViewById(R.id.button1);  
  31.         tv = (TextView) findViewById(R.id.textview1);  
  32.         button.setOnClickListener(new View.OnClickListener() {  
  33.   
  34.             @Override  
  35.             public void onClick(View v) {  
  36.   
  37.                 // TODO Auto-generated method stub  
  38.                 tv.setText("文本复原");   
  39.             }  
  40.         });  
  41.   
  42.         sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);  
  43.         vibrator = (Vibrator) getSystemService(Service.VIBRATOR_SERVICE);  
  44.   
  45.   
  46.     }  
  47.   
  48.   
  49.   
  50.   
  51.   
  52.   
  53.     @Override  
  54.     protected void onPause() {  
  55.   
  56.         // TODO Auto-generated method stub  
  57.         super.onPause();  
  58.         sensorManager.unregisterListener(this);  
  59.     }  
  60.   
  61.   
  62.   
  63.   
  64.   
  65.   
  66.     @Override  
  67.     protected void onResume() {  
  68.   
  69.         // TODO Auto-generated method stub  
  70.         super.onResume();  
  71.         sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL);  
  72.   
  73.     }  
  74.   
  75.   
  76.   
  77.   
  78.   
  79.   
  80.     @Override  
  81.     public void onAccuracyChanged(Sensor sensor, int accuracy) {  
  82.         //当传感器精度改变时回调该方法,Do nothing.  
  83.     }  
  84.   
  85.   
  86.   
  87.     @Override  
  88.     public void onSensorChanged(SensorEvent event) {  
  89.   
  90.           
  91.         int sensorType = event.sensor.getType();  
  92.         //values[0]:X轴,values[1]:Y轴,values[2]:Z轴  
  93.         float[] values = event.values;  
  94.         if(sensorType == Sensor.TYPE_ACCELEROMETER){              
  95.             if((Math.abs(values[0])>17||Math.abs(values[1])>17||Math.abs(values[2])>17)){  
  96.                 Log.d("sensor ""============ values[0] = " + values[0]);  
  97.                 Log.d("sensor ""============ values[1] = " + values[1]);  
  98.                 Log.d("sensor ""============ values[2] = " + values[2]);  
  99.                 tv.setText("摇一摇");  
  100.                 //摇动手机后,再伴随震动提示~~  
  101.                 vibrator.vibrate(500);  
  102.             }  
  103.   
  104.   
  105.         }  
  106.     }  
  107.   
  108.   
  109.   
  110.   
  111.   
  112.   
  113.   
  114. }  


记得在onresume和onpause的时候开关sensor的监听事件。

如果想调整sensor的敏感程度,就去修改,value[0,1,2] 大于的上限。

android系列:利用Sensor实现android手机类似于微信摇一摇

传感器有几种类型: 方向传感器: Sensor.TYPE_ORIENTATION 加速度(重力)传感器: Sensor.TYPE_ACCELEROMETER 光线传感器: Sensor.TYPE...
  • juan0728juan
  • juan0728juan
  • 2014年09月23日 21:01
  • 512

安卓高级5 传感器和震动 模仿微信摇一摇Ui效果

效果图: 所用的Ui就三张图: 案例代码:结构 MainActivity.javapackage com.example.myapp; import android.content.In...
  • qfanmingyiq
  • qfanmingyiq
  • 2016年10月21日 20:22
  • 614

微信摇一摇功能的实现

最近学习了一些微信常见的部分功能,然后觉得摇一摇这个相对来说比较独特的功能来说,其中的编程思想还是挺巧妙的,我们需要的一方面设置好用户权限,一方面要配置好JAVA文件,实例如下: 包名还是老样子,你...
  • Harry_suo
  • Harry_suo
  • 2015年01月14日 15:36
  • 1163

模仿微信摇一摇功能 利用js来实现微信摇一摇来自动更换网页背景的功能

微信推出后,他的摇一摇功能非常的火爆,没事来微信摇一摇加加好友,我们可不可以借鉴一下微信的摇一摇功能,让手机访问网页的时候,只要手机摇一摇,网页背景就会自动随时换一个网页背景。 具体想要用摇一摇的功能...
  • zhoudelun
  • zhoudelun
  • 2015年03月31日 16:11
  • 1310

微信摇一摇的代码实现

// //  ViewController.m //  shuaxin // //  Created by SGQ on 16/5/9. //  Copyright © ...
  • petyou123
  • petyou123
  • 2016年05月09日 18:13
  • 1502

Android 微信摇一摇功能实现

开发之前 今天学习了一下传感器, 脑子里就蹦出了微信的摇一摇, 于是鼓了鼓勇气抽空写了出来, 本人菜鸟一枚, 希望大神们多多指点 开发环境 Android Studio 2.2.1 JDK1.7 ...
  • u013144863
  • u013144863
  • 2016年10月28日 18:27
  • 3052

微信——H5实现微信摇一摇

项目终于如约上线,但是在春节前又有一个新的活动要做,类似微信的摇一摇活动。也一直在做微信公众号的东西,但是要调用微信摇一摇的接口还是有些困难,因为只提供了摇一摇周边,附近的人以及一系列的红包页面,相对...
  • xdd19910505
  • xdd19910505
  • 2016年01月28日 09:39
  • 8718

微信摇一摇实现签到的基本原理

我说一下关于微信摇一摇的事情吧,微信有一个功能是摇一摇,但这个功能他是需要自己开发的,就是你需要自己在服务器上写文件,代码可以是php也可以是别的语言,因为php适合微信开发所以微信开发一般是用php...
  • fendou300
  • fendou300
  • 2016年10月17日 19:26
  • 2834

iOS仿照微信摇一摇功能实现

iOS仿照微信摇一摇功能实现一、描述 需要做一个界面,仿照微信摇一摇,获取接口进行签到功能。 首先明确以下几点: 1、需要震动。 2、需要声音。(准备好mp3音...
  • IDOshi201109
  • IDOshi201109
  • 2016年08月27日 01:51
  • 1675

[Android实例] 仿微信摇一摇功能实现

该篇文章从eoeAndroid搬迁过来的,原文地址:[Android实例] 仿微信摇一摇功能实现 前段时间,由于换了新工作,参与到公司新项目里,很忙,也没时间去弄一些好玩的东西。这些天不算忙,突然想到...
  • krubo1
  • krubo1
  • 2016年01月05日 12:02
  • 3857
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用Sensor实现android手机类似于微信摇一摇
举报原因:
原因补充:

(最多只允许输入30个字)