Android学习笔记(6)-光照传感器

2017-01-20 08:24:31来源:CSDN作者:kanglovejava人点击

1.新建Module,activity_main.xml中定义一个TextView,用来显示光照强度:

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent">    <TextView        android:id="@+id/light_level"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_centerInParent="true"        android:textSize="20sp"/></RelativeLayout>

2.MainActivity.java:

package com.imooc.lightsensortest;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.widget.TextView;public class MainActivity extends AppCompatActivity {    private SensorManager sensorManager;//系统所有传感器的管理器,有了它的实例后就可以调用getDefaultSensor()方法来得到任意的传感器类型    private TextView lightLevel;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        lightLevel=(TextView)findViewById(R.id.light_level);        sensorManager=(SensorManager)getSystemService(Context.SENSOR_SERVICE);        Sensor sensor=sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);        //三个参数:1.SensorEventListener的实例 2.Sensor的实例 3.用于表示传感器输出信息的更新速率        //参数三有4个值:SENSOR_DELAY_UI,SENSOR_DELAY_NORMAL,SENSOR_DELAY_GAME,SENSOR_DELAY_FASTEST,更新速率依次递增        sensorManager.registerListener(listener,sensor,SensorManager.SENSOR_DELAY_NORMAL);    }    private SensorEventListener listener=new SensorEventListener() {        @Override        public void onSensorChanged(SensorEvent event) {            //values数组中第一个下标的值就是当前的光照强度            float value=event.values[0];            lightLevel.setText("Current light level is"+value+"lx");//单位:勒克斯        }        @Override        public void onAccuracyChanged(Sensor sensor, int accuracy) {        }    };    @Override    protected void onDestroy() {        super.onDestroy();        if(sensorManager!=null){            sensorManager.unregisterListener(listener);//onDestory()方法中调用unregisterListener()方法释放使用的资源        }    }}

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台