Android 您所在的位置:网站首页 虚拟近距离传感器有什么用 Android

Android

2023-08-18 05:32| 来源: 网络整理| 查看: 265

距离传感器(ProximitySensor)

P-Sensor距离感应器,可以感应手机和人体距离。具体使用用途是在通话过程中打开P-Sensor,那么当手机屏幕贴近用户脸部时,就会自动感应出手机和人体距离是多少。当小于某一个值时,就会熄灭屏幕,不再接收用户触摸屏幕事件,从而有效的防止通话过程中误触摸事件的出现。

例子1:利用按钮实现切换背景颜色 XML文件 java public class ButtonBackgroundActivity extends Activity { //Color调用,建立颜色数据源用 int[] colors = new int[]{Color.BLACK,Color.BLUE, Color.GREEN,Color.CYAN,Color.YELLOW}; int index=0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_button_background); final TextView tv_background = (TextView) findViewById(R.id.tv_background); Button btn_change_color = (Button) findViewById(R.id.btn_change_color); btn_change_color.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub index = (index+1)%colors.length; //按照数据顺序输出 tv_background.setBackgroundColor(colors[index]); } }); } } 效果

在这里插入图片描述

例子:通过距离传感器改变背景颜色 XML java public class ProximityActivityActivity extends Activity { TextView tv_changecolor_proximity; int[] colors = new int[]{Color.BLACK,Color.BLUE, Color.GREEN,Color.CYAN,Color.YELLOW}; int index=0; SensorManager sm; Sensor mProximity; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_proximity_activity); //绑定TextView组件 tv_changecolor_proximity = (TextView) findViewById(R.id.tv_changecolor_proximity); //1.获取SensorManager管理对象 sm=(SensorManager) getSystemService(SENSOR_SERVICE); //2.获取据传感器对象 mProximity=sm.getDefaultSensor(Sensor.TYPE_PROXIMITY); //3.给Sensor注册监听事件 sm.registerListener(listener, mProximity,SensorManager.SENSOR_DELAY_NORMAL); } //监听事件 private SensorEventListener listener = new SensorEventListener() { @Override public void onSensorChanged(SensorEvent event) { // TODO Auto-generated method stub //获取event接收的数据 float[] values = event.values; //获取距离传感器的距离 float dis = values[0]; //获取最大距离getMaximumRange(),系统固定值 float maxAccuracy = mProximity.getMaximumRange(); if(dis tv_changecolor_proximity.setBackgroundColor(Color.BLACK); } } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { // TODO Auto-generated method stub } }; @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); } } 效果::就是人体靠近自动换颜色,离开暂停


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有