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

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

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

本文實(shí)例為大家分享了Android微信搖一搖功能的實(shí)現(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; 
 
//需要實(shí)現(xiàn)SensorEventListener接口 
public class LoversChoise extends Activity implements SensorEventListener{ 
 
 Button clear; 
 //定義sensor管理器 
 private SensorManager mSensorManager; 
 //震動(dòng) 
 
 private Vibrator vibrator; 
  public void onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.loverschoise); 
  //獲取傳感器管理服務(wù) 
  mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); 
  //震動(dòng) 
  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 
  //點(diǎn)擊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í)際情況設(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)傳感器精度改變時(shí)回調(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){ 
 
 
 /*因?yàn)橐话阏G闆r下,任意軸數(shù)值最大就在9.8~10之間,只有在你突然搖動(dòng)手機(jī) 
 *的時(shí)候,瞬時(shí)加速度才會(huì)突然增大或減少。 
 *所以,經(jīng)過(guò)實(shí)際測(cè)試,只需監(jiān)聽(tīng)任一軸的加速度大于14的時(shí)候,改變你需要的設(shè)置 
 *就OK了~~~ 
 
 */ 
 
 if((Math.abs(values[0])>14||Math.abs(values[1])>14||Math.abs(values[2])>14)){ 
 
 
 //搖動(dòng)手機(jī)后,設(shè)置button上顯示的字為空 
 clear.setText(null); 
 //搖動(dòng)手機(jī)后,再伴隨震動(dòng)提示~~ 
 vibrator.vibrate(500); 
 
 } 
 
 } 
 
} 
 
} 

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

傳感器有幾種類型:

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

在搖動(dòng)手機(jī)的功能中,我們只用加速度傳感器就行了~~

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

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

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

x 方向就是手機(jī)的水平方向,右為正
y 方向就是手機(jī)的水平垂直方向,前為正
y 方向就是手機(jī)的空間垂直方向,天空的方向?yàn)檎?,地球的方向?yàn)樨?fù)

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

以上是搖動(dòng)手機(jī)后清除TextView的文字的代碼。

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

    Fresco加載手機(jī)圖片墻

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

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

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

    Android中的廣播和廣播接收器代碼實(shí)例

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

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

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

    解決android報(bào)錯(cuò):Intel HAXM is required to run this AVD

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

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

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

最新評(píng)論