欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android利用傳感器實現(xiàn)微信搖一搖功能

 更新時間:2021年10月11日 16:52:11   作者:jopen  
這篇文章主要為大家詳細(xì)介紹了Android利用傳感器實現(xiàn)微信搖一搖功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Android微信搖一搖功能的實現(xiàn)方法,供大家參考,具體內(nèi)容如下

import java.util.ArrayList; 
import java.util.List; 
import java.util.Random; 
import android.app.Activity; 
import android.app.Service; 
import android.content.res.Resources; 
import android.hardware.Sensor; 
import android.hardware.SensorEvent; 
import android.hardware.SensorEventListener; 
import android.hardware.SensorManager; 
import android.os.Bundle; 
import android.os.Vibrator; 
import android.view.View; 
import android.widget.Button; 
 
//需要實現(xiàn)SensorEventListener接口 
public class LoversChoise extends Activity implements SensorEventListener{ 
 
 Button clear; 
 //定義sensor管理器 
 private SensorManager mSensorManager; 
 //震動 
 
 private Vibrator vibrator; 
  public void onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.loverschoise); 
  //獲取傳感器管理服務(wù) 
  mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); 
  //震動 
  vibrator = (Vibrator) getSystemService(Service.VIBRATOR_SERVICE); 
  clear = (Button) findViewById(R.id.clear); 
  clear.setOnClickListener(new Button.OnClickListener(){ 
  @Override 
  public void onClick(View arg0) { 
   // TODO Auto-generated method stub 
  //點擊button后,給button按鈕設(shè)置了text 
  clear.setText("現(xiàn)在給button的text賦值嘍~"); 
 
 }); 
 
@Override 
protected void onResume(){ 
 super.onResume(); 
 //加速度傳感器 
 mSensorManager.registerListener(this, 
 mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), 
 //還有SENSOR_DELAY_UI、SENSOR_DELAY_FASTEST、SENSOR_DELAY_GAME等, 
 //根據(jù)不同應(yīng)用,需要的反應(yīng)速率不同,具體根據(jù)實際情況設(shè)定 
 
 SensorManager.SENSOR_DELAY_NORMAL); 
 
} 
 
@Override 
protected void onStop(){ 
 mSensorManager.unregisterListener(this); 
 super.onStop(); 
 
} 
 
@Override 
protected void onPause(){ 
 mSensorManager.unregisterListener(this); 
 super.onPause(); 
 
} 
 
@Override 
public void onAccuracyChanged(Sensor sensor, int accuracy) { 
 // TODO Auto-generated method stub 
 //當(dāng)傳感器精度改變時回調(diào)該方法,Do nothing. 
 
} 
 
@Override 
public void onSensorChanged(SensorEvent event) { 
 // TODO Auto-generated method stub 
 int sensorType = event.sensor.getType(); 
 //values[0]:X軸,values[1]:Y軸,values[2]:Z軸 
 float[] values = event.values; 
 if(sensorType == Sensor.TYPE_ACCELEROMETER){ 
 
 
 /*因為一般正常情況下,任意軸數(shù)值最大就在9.8~10之間,只有在你突然搖動手機 
 *的時候,瞬時加速度才會突然增大或減少。 
 *所以,經(jīng)過實際測試,只需監(jiān)聽任一軸的加速度大于14的時候,改變你需要的設(shè)置 
 *就OK了~~~ 
 
 */ 
 
 if((Math.abs(values[0])>14||Math.abs(values[1])>14||Math.abs(values[2])>14)){ 
 
 
 //搖動手機后,設(shè)置button上顯示的字為空 
 clear.setText(null); 
 //搖動手機后,再伴隨震動提示~~ 
 vibrator.vibrate(500); 
 
 } 
 
 } 
 
} 
 
} 

現(xiàn)在的不少應(yīng)用都用到了搖動手機改變內(nèi)容的功能,比如微信中的“搖一搖”功能。前兩天要實現(xiàn)這個功能,稍微看了一下關(guān)于傳感器Sensor的內(nèi)容。

傳感器有幾種類型:

方向傳感器:   Sensor.TYPE_ORIENTATION
加速度(重力)傳感器: Sensor.TYPE_ACCELEROMETER
光線傳感器:    Sensor.TYPE_LIGHT
磁場傳感器:   Sensor.TYPE_MAGNETIC_FIELD
距離(臨近性)傳感器: Sensor.TYPE_PROXIMITY
溫度傳感器:   Sensor.TYPE_TEMPERATURE

在搖動手機的功能中,我們只用加速度傳感器就行了~~

加速度傳感器返回值的單位是加速度的單位 m/s^2(米每二次方秒),有三個方向的值分別是

values[0]: x-axis 方向加速度
values[1]: y-axis 方向加速度
values[2]: z-axis 方向加速度

其中x,y,z方向的定義是以水平放置在的手機的右下腳為參照系坐標(biāo)原點

x 方向就是手機的水平方向,右為正
y 方向就是手機的水平垂直方向,前為正
y 方向就是手機的空間垂直方向,天空的方向為正,地球的方向為負(fù)

所以說,你的手機放置的空間位置不同,它三個方向的加速度也不同。在這里,三個方向的加速度,與我們傳統(tǒng)意義上的加速度(9.8m/s2)有所區(qū)別,需細(xì)細(xì)品味。

以上是搖動手機后清除TextView的文字的代碼。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android編程實現(xiàn)識別與掛載U盤的方法

    Android編程實現(xiàn)識別與掛載U盤的方法

    這篇文章主要介紹了Android編程實現(xiàn)識別與掛載U盤的方法,對比分析了Android針對U盤的識別與掛載技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-02-02
  • 使用RoundedBitmapDrawable生成圓角圖片的方法

    使用RoundedBitmapDrawable生成圓角圖片的方法

    由于RoundedBitmapDrawable類沒有直接提供生成圓形圖片的方法,所以生成圓形圖片首先需要對原始圖片進行裁剪,將圖片裁剪成正方形,最后再生成圓形圖片,具體實現(xiàn)方法,可以參考下本文
    2016-09-09
  • Android開發(fā)退出程序的方法匯總

    Android開發(fā)退出程序的方法匯總

    Android程序有很多Activity,比如說主窗口A,調(diào)用了子窗口B,子窗口B又調(diào)用子窗口C,back返回子窗口B后,在B中如何關(guān)閉整個Android應(yīng)用程序呢? 下面腳本之家小編就給大家介紹android開發(fā)退出程序的幾種方法,感興趣的朋友參考下吧
    2016-03-03
  • Android Room數(shù)據(jù)庫容易遇到的問題以及解決方法

    Android Room數(shù)據(jù)庫容易遇到的問題以及解決方法

    這篇文章給大家介紹了我們在Android Room數(shù)據(jù)庫容易遇到的坑以及解決方法,文中有詳細(xì)的代碼示例供我們參考,具有一定的參考價值,需要的朋友可以參考下
    2023-09-09
  • Fresco加載手機圖片墻

    Fresco加載手機圖片墻

    這篇文章主要為大家詳細(xì)介紹了Fresco加載手機圖片墻,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Android中子線程和UI線程通信詳解

    Android中子線程和UI線程通信詳解

    這篇文章主要介紹了Android中子線程和UI線程通信詳解,本文講解了一些概念、使用、及代碼實例,需要的朋友可以參考下
    2015-06-06
  • Android中的廣播和廣播接收器代碼實例

    Android中的廣播和廣播接收器代碼實例

    這篇文章主要介紹了Android中的廣播和廣播接收器代碼實例,本文講解了定義一個廣播接收器、發(fā)送廣播,定義好action標(biāo)志、用Intent發(fā)送、注冊只接收指定action的廣播接收器、取消該廣播接收器等操作代碼實例,需要的朋友可以參考下
    2015-05-05
  • Android之采用execSQL與rawQuery方法完成數(shù)據(jù)的添刪改查操作詳解

    Android之采用execSQL與rawQuery方法完成數(shù)據(jù)的添刪改查操作詳解

    本篇文章是對用execSQL與rawQuery方法完成數(shù)據(jù)的添刪改查操作進行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • 解決android報錯:Intel HAXM is required to run this AVD

    解決android報錯:Intel HAXM is required to run this AVD

    這篇文章主要介紹了解決android報錯:Intel HAXM is required to run this AVD,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • Android APP瘦身(清除工程中沒用到的資源)詳解

    Android APP瘦身(清除工程中沒用到的資源)詳解

    這篇文章主要介紹了Android 清除工程中沒用到的資源詳解的相關(guān)資料,這里舉例說明如何實現(xiàn),需要的朋友可以參考下
    2016-11-11

最新評論