發布日期:2022-10-09 點擊率:288
說到光線傳感器有的人感覺用的不多,但是手機自身帶的自動調節手機亮度就是使用的光線傳感器,也就是手機里的光線感應器,你的手機是否開啟了這個功能呢?
小小的介紹
那么光線感應器是個什么鬼呢?它是用來檢測手機周圍光線的強度,單位是lux,一般置于手機的頭部,前置攝像頭的附近,你可以看一下你的手機,拿手指擋住看看手機亮度是否會變暗,光線傳感器和其他的傳感器開發步驟是一樣一樣的(貌似都是這么一個流程)
開發過程
1.得到傳感器管理者對象
// 獲取傳感器管理者對象
SensorManager mSenso
內容介紹熱點排行相關文章下載地址↓
Android 動畫電子溫度計 溫度傳感器 動態得展示了從手機溫度傳感器得到的溫度值,現在提供給初學者學習研究,希望大家喜歡。
電子溫度計 溫度傳感器 Android
人氣源碼
Android項目源碼高仿知乎android studio版本demo
16.5MB | 簡體中文
下載
Android經典源碼全集(簡單易懂)
14.6MB | 簡體中文
下載
看代碼學Android開發系列:Android 個人記賬程序源代碼
236MB | 簡體中文
下載
Android開發精典案例60個源碼打包
11MB | 簡體中文
下載
GitHub上最火的40個Android開源項目源碼打包
23MB | 簡體中文
下載
看代碼學Android開發系列:Android天氣預報源代碼
483KB | 簡體中文
下載
看代碼學Android開發系列:Android指南針程序源代碼
389KB | 簡體中文
下載
Android應用源碼實現手機通訊錄效果源碼
1.09MB | 簡體中文
下載
mars老師android視頻源碼(33集全)
6.7MB | 簡體中文
下載
下載地址
【找不到分享碼?】 下載錯誤?【投訴報錯】
Android利用溫度傳感器實現帶動畫效果的電子溫度計
四五互聯移動下載群英網絡電信下載巨牛網絡電信下載創夢網絡電信下載
相關文章
最新樂步走路賺錢區塊鏈完整網站源碼可打包APPAndroid醫院信息管理-護士站系統源碼(源碼+數據庫)android用戶登陸注冊例子完整源碼(含服務器端源碼/mysql數據庫腳本等)pxpay 微信支付寶個人收款接口 v2.0.4IPCommAndroid 星際通訊 v1.6xUtils Android工具包 v3.9.0Android 一個輕量Youtube客戶端源碼Android Kotlin開發高德地圖Android 仿小米日歷源碼萌鑫直播源碼app源碼 v3
網友評論
下載聲明
☉ 解壓密碼: 就是本站主域名,希望大家看清楚,[ 分享碼的獲取方法 ]可以參考這篇文章
☉ 推薦使用 [ 迅雷 ] 下載,使用 [ WinRAR v5 ] 以上版本解壓本站軟件。
☉ 如果這個軟件總是不能下載的請在評論中留言,我們會盡快修復,謝謝!
☉ 下載本站資源,如果服務器暫不能下載請過一段時間重試!或者多試試幾個下載地址
☉ 如果遇到什么問題,請評論留言,我們定會解決問題,謝謝大家支持!
☉ 本站提供的一些商業軟件是供學習研究之用,如用于商業用途,請購買正版。
☉ 本站提供的Android利用溫度傳感器實現帶動畫效果的電子溫度計資源來源互聯網,版權歸該下載資源的合法擁有者所有。
代碼下載:
一、準備工作
需要準備一部帶有溫度傳感器的安卓手機,或者使用有溫度傳感器的模擬器。
二、程序實現
1、需要截圖程序結構
2、實現思路怎樣
要想實現帶動畫效果的電子溫度計,需要以下幾個知識點:
溫度傳感器相關知識。
ScaleAnimation動畫相關知識,來進行水印刻度的縮放效果。
Android:layout_weight屬性的合理運用,關于android:layout_weight屬性的講解,可以參考:《我的Android進階之旅------>關于android:layout_weight屬性的一個面試題》
首先來看看本實例的具體效果,然后再來具體實現功能。
1、將溫度強制設置為0度時,畫面如下:
2、將溫度強制設置為50度時,畫面如下:
3、將溫度強制設置為-20度時,畫面如下:
4、從傳感器動態得到溫度值,并實時更新畫面,如下所示:
首先來看布局文件的代碼:layout_thermometer.xml
接著看Activity的代碼:ThermometerActivity.java
package com.oyp.thermometer;
import android.app.Activity;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.view.animation.ScaleAnimation;
import android.widget.LinearLayout;
import android.widget.TextView;
public class ThermometerActivity extends Activity implements SensorEventListener {
private LinearLayout alcohol;
private LinearLayout meter;
private SensorManager mSensorManager;
private Sensor temperatureSensor;
private TextView thermo_c;
private TextView thermo_f;
public float staratemp;
public float temp;
private float temperatureC;
public float getTemperatureF() {
float temperatureF=(temperatureC * 9 / 5) + 32;
return getFloatOne(temperatureF);
}
public float getFloatOne(float tempFloat) {
return (float) (Math.round(tempFloat * 10)) / 10;
}
public float getTemperatureC() {
return getFloatOne(temperatureC);
}
public void setTemperatureC(float temperatureC) {
this.temperatureC=temperatureC;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_thermometer);
meter=((LinearLayout) findViewById(R.id.meter));
alcohol=((LinearLayout) findViewById(R.id.alcohol));
thermo_c=(TextView) findViewById(R.id.thermo_c);
thermo_f=(TextView) findViewById(R.id.thermo_f);
}
@Override
protected void onResume() {
super.onResume();
mSensorManager=(SensorManager) getSystemService(Context.SENSOR_SERVICE);
temperatureSensor=mSensorManager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE);
mSensorManager.registerListener(this, temperatureSensor, SensorManager.SENSOR_DELAY_NORMAL);
}
@Override
public final void onSensorChanged(SensorEvent event) {
float temperaturevalue=event.values[0]; // 得到溫度
setTemperatureC(temperaturevalue);// 設置溫度
mUpdateUi();// 更新UI
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
private void mUpdateUi() {
ScaleAnimation localScaleAnimation1=new ScaleAnimation(1.0F, 1.0F, this.staratemp, this.temp, 1, 0.5F, 1,
1.0F);
localScaleAnimation1.setDuration(2000L);
localScaleAnimation1.setFillEnabled(true);
localScaleAnimation1.setFillAfter(true);
this.alcohol.startAnimation(localScaleAnimation1);
this.staratemp=this.temp;
ScaleAnimation localScaleAnimation2=new ScaleAnimation(1.0F, 1.0F, 1.0F, 1.0F, 1, 0.5F, 1, 0.5F);
localScaleAnimation2.setDuration(10L);
localScaleAnimation2.setFillEnabled(true);
localScaleAnimation2.setFillAfter(true);
this.meter.startAnimation(localScaleAnimation2);
// 把刻度表看出總共700份,如何計算縮放比例。從-20°到50°。
// 例如,現在溫度是30°的話,應該占(30+20)*10=500份 其中20是0到-20°所占有的份
this.temp=(float) ((20.0F + getTemperatureC()) * 10) / (70.0F * 10);
thermo_c.setText(getTemperatureC() + "");
thermo_f.setText(getTemperatureF() + "");
}
}
三、運行效果
1、運行,右鍵項目:Run as -》Android Application
2、如上圖所示,也就是這樣子:
四、其他補充
暫時沒
代碼下載:
注:本文著作權歸作者,由demo大師發表,拒絕轉載,轉載需要作者授權
大致總結下,理解不深入,隨便說說
測人體溫度的工程,需要對測溫數據進行分析,取到有效的溫度值;這是一個非傳統的DS18B20那種單點溫度傳感器,而是多點測溫,從底層傳來的溫度數據有768個,但應用場景是需要一個溫度值,這個就比較折騰了;
這部分雖然之前做了許多類似的項目,一開始還是比較混亂,最好在AS里面新建一個C++的Android Studio的項目,這樣簡省很多不必要的操作;
大致項目結構如下:
cpp路徑下放.c .h文件,這部分溫度傳感器供應商那邊提供,系統工程師修改后給到應用層開發,這里不多贅述,起始我也說不清,就知道是那么回事而已啦;之后理解了再去細談;
assets路徑下放html和js文件
這里主要新建的C++項目會自動生成CMakeLists文件,之前新建的Android項目這部分就的需要自己加進去,之后修改也比較麻煩,也會遇到很多問題,我之前就是按照網上的說法自己加的,加完了之后編譯是有問題的;編譯之后會生成so文件,生成的so文件可拷貝到其他項目使用;
接著是Java文件加載native-lib本地庫,在這里寫一些Java調用的方法,比如溫度傳感器的open,close及讀溫度readData等方法;
對應在.cpp文件下生成對應的調用的函數
以上完成沒問題的話,接下來就是Android的activity文件中調用相關的方法獲取溫度值;獲取的溫度數據進行統計,畫圖表,這部分采用的前端的js圖表庫;
html顯示圖表數據,當然這里是用的webView進行顯示沒有其他的高大上的跨平臺開發啦,中間就是些數據處理的問題了
最后就是做的一些數據圖表,有前端的也有通過Android框架實現的:
此刻正在看的你請諒解,很抱歉浪費你的時間
亂七八糟的說了一堆,不知道要表達什么,就是想自說自話,就想隨便打會兒字,打字的感覺很舒服。
越來越清晰的感覺到我只是路過這里,不該貪戀這里的一切,還有很長很長很長一段路程要走。。。。。。
下一篇: PLC、DCS、FCS三大控
上一篇: 電氣控制線路圖控制原