全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Android利用Senser实现不同的传感器

传感器有不同的类型,以下是我列出的光线,加速度,风向传感器,在测试不同传感器的时候都需将传感器管理的onResume中sensorManager.registerListener(myListner,sensorOri,sensorManager.SENSOR_DELAY_UI);

第二个参数改为相应的传感器,此dem中我加入了一张指南针图片作为示例:

activity_main.xml

 <Button
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:text="查看所有支持的传感类型"
 android:onClick="getAllSensors"
 />
 <TextView
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:textSize="30sp"
 android:id="@+id/tv_main_result"

 />

 <ImageView
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:src="@drawable/sounth"
 android:id="@+id/iv_main_images"

 />

java代码中注释掉的部分都是一种传感器的测试。

MainActivity.java

package com.example.cindy_sounth;

import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.WindowManager;
import android.view.animation.RotateAnimation;
import android.widget.ImageView;
import android.widget.TextView;

import java.util.List;

public class MainActivity extends AppCompatActivity {

 private SensorManager sensorManager;
 private Sensor sensorLight;
 private Sensor sensorAcc;
 private Sensor sensorOri;
 private TextView tv_main_result;
 private MyListner myListner;
 private ImageView iv_main_images;
 private float current;


 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 //得到图片
 iv_main_images = (ImageView) findViewById(R.id.iv_main_images);

 tv_main_result = (TextView) findViewById(R.id.tv_main_result);

 //得到传感器的管理者
 sensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
 //得到光线传感器
// sensorLight = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);

 //获得加速度传感器
// sensorAcc = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
  //获取风向传感器
 sensorOri = sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);



 myListner = new MyListner();



 }
 //注册一个监听(监听某一个传感器的值)
 @Override
 protected void onResume() {
 super.onResume();

 sensorManager.registerListener(myListner,sensorOri,sensorManager.SENSOR_DELAY_UI);
 }
 class MyListner implements SensorEventListener{

  private WindowManager.LayoutParams layoutParams;

  //当你的值发生改变
  @Override
  public void onSensorChanged(SensorEvent event) {
  float[] f=event.values;
  //测试获取光线传感器的值(光线值)
//  float light= f[0];
//  tv_main_result.setText(light+"");

  //测试获得加速度传感器
//  float x= f[0];
//  float y= f[1];
//  float z= f[2];
//  tv_main_result.setText("x="+x+"\ny="+y+"\nz="+z);

  //测试获取风向传感器
//  float x= f[0];
//  float y= f[1];
//  float z= f[2];
//  tv_main_result.setText("x="+x+"\ny="+y+"\nz="+z);

  //加图片测试指南针
  float x= f[0];
  float y= f[1];
  float z= f[2];
  tv_main_result.setText("x="+x+"\ny="+y+"\nz="+z);

  //实例化旋转动画
  RotateAnimation rotateAnimation=new RotateAnimation(current,-x,RotateAnimation.RELATIVE_TO_SELF,0.5f,RotateAnimation.RELATIVE_TO_SELF,0.5f);
  rotateAnimation.setDuration(200);
  current=-x;
  iv_main_images.startAnimation(rotateAnimation);
  //改变屏幕的亮度
  //先拿到屏幕
//  WindowManager.LayoutParams layoutParams= getWindow().getAttributes();
//  layoutParams.screenBrightness=light/225f;
//  getWindow().setAttributes(layoutParams);

  }
  //当值发生精度改变
  @Override
  public void onAccuracyChanged(Sensor sensor, int accuracy) {

  }
 }



 @Override
 protected void onDestroy() {
 super.onDestroy();
 sensorManager.unregisterListener(myListner);
 }
 public void getAllSensors(View view){
 List<Sensor> sensors= sensorManager.getSensorList(Sensor.TYPE_ALL);
 for (Sensor sensor : sensors) {
  Log.i("test", sensor.getName());
//  sensor.getPower();
 }

 }



}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# Android  # Senser  # 传感器  # Android 利用方向传感器实现指南针具体步骤  # Android利用方向传感器获得手机的相对角度实例说明  # Android编程中光线传感器的调用方法详解  # Android编程使用加速度传感器实现摇一摇功能及优化的方法详解  # Android编程实现获取所有传感器数据的方法  # Android利用Sensor(传感器)实现水平仪功能  # Android 传感器--光照传感器详解及使用  # Android 重力传感器在游戏开发中的应用  # Android重力传感器实现滚动的弹球  # android 传感器(OnSensorChanged)使用介绍  # Android编程之方向传感器用法示例  # 都是  # 第二个  # 大家多多  # java  # iv_main_images  # sounth  # MainActivity  # package  # cindy_sounth  # sp  # id  # textSize  # src  # drawable  # tv_main_result  # ImageView  # import  # AppCompatActivity  # app  # os 


相关文章: 北京网站制作公司哪家好一点,北京租房网站有哪些?  如何通过PHP快速构建高效问答网站功能?  ui设计制作网站有哪些,手机UI设计网址吗?  建站之星与建站宝盒如何选择最佳方案?  建站之星安装步骤有哪些常见问题?  专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?  定制建站如何定义?其核心优势是什么?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  如何快速辨别茅台真假?关键步骤解析  如何快速搭建二级域名独立网站?  网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?  Android滚轮选择时间控件使用详解  教学网站制作软件,学习*后期制作的网站有哪些?  如何用PHP工具快速搭建高效网站?  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  网站制作壁纸教程视频,电脑壁纸网站?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  如何在西部数码注册域名并快速搭建网站?  如何用腾讯建站主机快速创建免费网站?  深圳网站制作案例,网页的相关名词有哪些?  如何获取免费开源的自助建站系统源码?  实例解析Array和String方法  如何通过WDCP绑定主域名及创建子域名站点?  如何用景安虚拟主机手机版绑定域名建站?  如何在云主机上快速搭建网站?  深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?  如何在万网自助建站中设置域名及备案?  外贸公司网站制作哪家好,maersk船公司官网?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?  成都网站制作公司哪家好,四川省职工服务网是做什么用?  定制建站策划方案_专业建站与网站建设方案一站式指南  C#如何序列化对象为XML XmlSerializer用法  名字制作网站免费,所有小说网站的名字?  建站ABC备案流程中有哪些关键注意事项?  微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?  如何在阿里云ECS服务器部署织梦CMS网站?  php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】  如何快速搭建高效可靠的建站解决方案?  微网站制作教程,我微信里的网站怎么才能复制到浏览器里?  用v-html解决Vue.js渲染中html标签不被解析的问题  如何在阿里云完成域名注册与建站?  如何在Golang中使用replace替换模块_指定本地或远程路径  深入理解Android中的xmlns:tools属性  ,网站推广常用方法?  如何在云服务器上快速搭建个人网站?  制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?  建站之星如何助力企业快速打造五合一网站?  C++如何使用std::optional?(处理可选值) 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。