編輯:關於Android編程
Android 設備中有許多傳感器,其中有一個傳感器控制著你屏幕亮度的變化。當你在很暗的地方使用手機,你設備的屏幕會自動調暗,從而保護你眼睛。
起著這樣作用,Android是通過一款光照傳感器來獲取你周圍環境亮度的變化。光照傳感器一般在手機的頂部的位置。
要在程序中使用這款傳感器
(1)首先要獲取SensorManager傳感器管理器服務:SensorManager sensorManager=(SensorManager)getSystemService(Context.SENSOR_SERVICE);
(2)獲取光照傳感器:Sensor liaghtSensor=sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT)//Sensor.TYPE_LIGHT 代表光照傳感器
(3)注冊和監視光照傳感器:
sensorManager.registerListener(new SensorEventListener() { @Override public void onSensorChanged(SensorEvent event) { //監視傳感器的改變 //accuracy 傳感器的精度 通過event.accuracy獲取 //values 傳感器傳回的數值 如event.values[0] 獲取光線強度lux //timestamp 傳感器事件發生的時間(以納秒為單位) } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { //對傳感器精度的改變做出反應 } }, sensor, SensorManager.SENSOR_DELAY_NORMAL);
一個簡單的獲取光照傳感器光線強度lux的代碼:
public class MainActivity extends Activity { private TextView value_tv; private SensorManager sensorMamager; private Sensor sensor; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); value_tv=(TextView) findViewById(R.id.value_tv); //獲取SensorManager對象 sensorMamager=(SensorManager) getSystemService(SENSOR_SERVICE); //獲取Sensor對象 sensor=sensorMamager.getDefaultSensor(Sensor.TYPE_LIGHT); sensorMamager.registerListener(new SensorEventListener() { @Override public void onSensorChanged(SensorEvent event) { //獲取精度 float acc = event.accuracy; //獲取光線強度 float lux = event.values[0]; value_tv.setText("acc:"+acc+";"+"lux:"+lux); } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { // TODO 自動生成的方法存根 } }, sensor, SensorManager.SENSOR_DELAY_NORMAL); } }
對於一些程序,在改變當前程序屏幕亮度的時候,可以考慮加入光照傳感器的判斷。
因為大部分這些程序,會出現這樣的一個問題,當(在非自動亮度調節模式)設定屏幕亮度為一個值時,再設置為自動亮度調節模式的時候是無效的。
以上就是對Android 傳感器 光照傳感的資料整理,後續繼續補充相關資料,謝謝大家對本站的支持!
前面章節我們說了如何定義屬性、如何定義寬高,這樣之後組件的簡單外形或輪廓就已經出來,或者說已經定義出了畫布的大小,解下來就是如何在畫布上揮毫潑墨了。組件(除了容器組件)實
人人android是人人網推出的一款優秀的手機應用軟件,我們在使用的時候發現他的首頁布局是九宮格模式的,讓人覺得很別致,因為現在很多的 android軟件很少使用這種布局
最近接了一個項目其中有功能要實現一個清理內存,要求和微信的效果一樣。於是想到用surfaceView而不是繼承view。下面小編給大家解析下實現思路。surfaceVie
Android中自定義字體設置一般通過 facetype屬性進行設置,先看一下官網提供的方法顧名思義 就是說我們可以通過使用項目中assets文件下的資產文件或者是and