设备详情完成部分

master
wenfei 1 week ago
parent 68009b4c8c
commit 9a44ca7219

@ -460,6 +460,9 @@
<activity <activity
android:name=".ui.activity.DeviceManagerListActivity" android:name=".ui.activity.DeviceManagerListActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.DeviceMonitoringDetailActivity"
android:screenOrientation="portrait" />
<activity <activity
android:name=".ui.activity.DeviceOverviewListActivity" android:name=".ui.activity.DeviceOverviewListActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />

@ -553,6 +553,8 @@ public class Contans {
public final static String DeviceOnlineStatusAreaBeanUrl = "dserver/map/area/list"; public final static String DeviceOnlineStatusAreaBeanUrl = "dserver/map/area/list";
//设备管理 //设备管理
public final static String DeviceManagerListUrl = "dserver/device/list/vibration"; public final static String DeviceManagerListUrl = "dserver/device/list/vibration";
//设备详情
public final static String DeviceDetailDataUrl = "dserver/device/vibration/monitoring/list";
//人员组织结构模块 用户验证接口token //人员组织结构模块 用户验证接口token
public final static String AUTHENTICATIONLOGINTOKEN = "AUTHENTICATIONLOGINTOKEN"; public final static String AUTHENTICATIONLOGINTOKEN = "AUTHENTICATIONLOGINTOKEN";

@ -51,41 +51,6 @@ class DeviceManagerListAdapter(
override fun handleData(position: Int, binding: AdapterDeviceManagerListBinding) { override fun handleData(position: Int, binding: AdapterDeviceManagerListBinding) {
val itemBean: DeviceManagerListResultBean.DeviceManagerItem = data[position] val itemBean: DeviceManagerListResultBean.DeviceManagerItem = data[position]
if (!TextUtils.isEmpty(itemBean.fileName)) { if (!TextUtils.isEmpty(itemBean.fileName)) {
//binding.ivDevicePhoto.setImageBitmap()
// Glide.with(viewHolder.itemView.getContext())
// .load(Uri.parse(mediaUrl))
// .centerCrop()
// .placeholder(R.color.app_color_f6)
// .diskCacheStrategy(DiskCacheStrategy.ALL)
// .into(viewHolder.mImg);
// Glide.with(viewHolder.itemView.getContext())
// .load(mediaUrl)
// .dontAnimate()
// .skipMemoryCache(true)
// .diskCacheStrategy(DiskCacheStrategy.NONE)
// .placeholder(R.drawable.head_photo)
// .into(viewHolder.mImg);
// showLog(mediaUrl);
// Request<Bitmap> request = NoHttp.createImageRequest(mediaUrl);
// NohttpUtils.getInstance().addNoProgress(context,0, request, new HttpListener<Bitmap>() {
//
// @Override
// public void onSucceed(int what, com.yolanda.nohttp.rest.Response<Bitmap> response) {
//
// Bitmap picFile = response.get();
// showLog(String.valueOf(picFile==null));
// viewHolder.mImg.setImageBitmap(picFile);
// }
//
// @Override
// public void onFailed(int what, com.yolanda.nohttp.rest.Response<Bitmap> response) {
// showLog("设备图片加载失败");
// }
// });
val mediaUrl = Contans.IP + Contans.getImgDeviceOnlineBaseUrl+itemBean.fileName val mediaUrl = Contans.IP + Contans.getImgDeviceOnlineBaseUrl+itemBean.fileName
val request = NoHttp.createImageRequest(mediaUrl) val request = NoHttp.createImageRequest(mediaUrl)
request.cacheMode = CacheMode.NONE_CACHE_REQUEST_NETWORK request.cacheMode = CacheMode.NONE_CACHE_REQUEST_NETWORK
@ -134,36 +99,6 @@ class DeviceManagerListAdapter(
binding.ivDevicePhoto.setImageDrawable(drawable) binding.ivDevicePhoto.setImageDrawable(drawable)
} }
// if (!TextUtils.isEmpty(itemBean.position)) {
// val deviceOnlineStatusAreaBeanStr: String? =
// SPUtils.get(context, Contans.DeviceOnlineStatusAreaBean, "") as String?
// if (deviceOnlineStatusAreaBeanStr != null) {
// val bean = GsonUtils.GsonToBean(
// deviceOnlineStatusAreaBeanStr,
// DeviceOnlineStatusAreaBean::class.java
// )
// if (bean != null && bean.code == 20000 && bean.isSuccess && bean.data != null && bean.data.size > 0) {
// val areaList: MutableList<DeviceOnlineStatusAreaBean.DeviceArea> =
// mutableListOf()//在线设备区域列表
// areaList.addAll(bean.data)
// //更新区域
// for (itemArea in areaList) {
// if (itemArea.nodeList != null && itemArea.nodeList.size > 0) {
// for (itemNodeList in itemArea.nodeList) {
// if (!TextUtils.isEmpty(itemNodeList.nodeKey)) {
// if (itemNodeList.nodeKey == itemBean.position) {
// if (!TextUtils.isEmpty(itemNodeList.cname)) {
// itemBean.nodeListCname = itemNodeList.cname
// }
// }
// }
// }
// }
// }
// }
// }
// }
binding.tvMc.text = itemBean.name binding.tvMc.text = itemBean.name
if(!TextUtils.isEmpty(itemBean.areaFullName)){ if(!TextUtils.isEmpty(itemBean.areaFullName)){
binding.tvArea.text = itemBean.areaFullName binding.tvArea.text = itemBean.areaFullName

@ -0,0 +1,222 @@
package com.rehome.zhdcoa.bean;
import java.util.List;
public class DeviceDetailListResultBean extends DeviceAlarmBaseBean {
private List<DeviceDetailItem> data;
public List<DeviceDetailItem> getData() {
return data;
}
public void setData(List<DeviceDetailItem> data) {
this.data = data;
}
/**
* {
* "deviceTime": "2026-03-03 15:37:36",
* "temperature": 41.3536,
* "xDisplacement": 18.3865,
* "yDisplacement": 17.2165,
* "zDisplacement": 7.43098,
* "xSpeed": 1.08465,
* "ySpeed": 0.943979,
* "zSpeed": 0.689721,
* "xAcceleration": 0.999873,
* "yAcceleration": 0.913917,
* "zAcceleration": 1.03879,
* "xDcComponent": -2.87,
* "yDcComponent": -2.57828,
* "zDcComponent": -9.43139,
* "xFrequency": 159.0,
* "yFrequency": 592.0,
* "zFrequency": 1186.0,
* "xFreq": 0.169286,
* "yFreq": 0.197543,
* "zFreq": 0.217712
* }
*/
public static class DeviceDetailItem {
private String deviceTime;//设备时间
private Double temperature;//温度
private Double xDisplacement;//x轴位移
private Double yDisplacement;//y轴位移
private Double zDisplacement;//z轴位移
private Double xSpeed;//x轴速度
private Double ySpeed;//y轴速度
private Double zSpeed;//z轴速度
private Double xAcceleration;//X轴加速度
private Double yAcceleration;//y轴加速度
private Double zAcceleration;//z轴加速度
private Double xDcComponent;//X轴直流分量
private Double yDcComponent;//y轴直流分量
private Double zDcComponent;//z轴直流分量
private Double xFrequency;//X轴频率
private Double yFrequency;//y轴频率
private Double zFrequency;//z轴频率
private Double xFreq;// x FREQ对应幅值
private Double yFreq;// y FREQ对应幅值
private Double zFreq;// z FREQ对应幅值
public String getDeviceTime() {
return deviceTime;
}
public void setDeviceTime(String deviceTime) {
this.deviceTime = deviceTime;
}
public Double getTemperature() {
return temperature;
}
public void setTemperature(Double temperature) {
this.temperature = temperature;
}
public Double getxDisplacement() {
return xDisplacement;
}
public void setxDisplacement(Double xDisplacement) {
this.xDisplacement = xDisplacement;
}
public Double getyDisplacement() {
return yDisplacement;
}
public void setyDisplacement(Double yDisplacement) {
this.yDisplacement = yDisplacement;
}
public Double getzDisplacement() {
return zDisplacement;
}
public void setzDisplacement(Double zDisplacement) {
this.zDisplacement = zDisplacement;
}
public Double getxSpeed() {
return xSpeed;
}
public void setxSpeed(Double xSpeed) {
this.xSpeed = xSpeed;
}
public Double getySpeed() {
return ySpeed;
}
public void setySpeed(Double ySpeed) {
this.ySpeed = ySpeed;
}
public Double getzSpeed() {
return zSpeed;
}
public void setzSpeed(Double zSpeed) {
this.zSpeed = zSpeed;
}
public Double getxAcceleration() {
return xAcceleration;
}
public void setxAcceleration(Double xAcceleration) {
this.xAcceleration = xAcceleration;
}
public Double getyAcceleration() {
return yAcceleration;
}
public void setyAcceleration(Double yAcceleration) {
this.yAcceleration = yAcceleration;
}
public Double getzAcceleration() {
return zAcceleration;
}
public void setzAcceleration(Double zAcceleration) {
this.zAcceleration = zAcceleration;
}
public Double getxDcComponent() {
return xDcComponent;
}
public void setxDcComponent(Double xDcComponent) {
this.xDcComponent = xDcComponent;
}
public Double getyDcComponent() {
return yDcComponent;
}
public void setyDcComponent(Double yDcComponent) {
this.yDcComponent = yDcComponent;
}
public Double getzDcComponent() {
return zDcComponent;
}
public void setzDcComponent(Double zDcComponent) {
this.zDcComponent = zDcComponent;
}
public Double getxFrequency() {
return xFrequency;
}
public void setxFrequency(Double xFrequency) {
this.xFrequency = xFrequency;
}
public Double getyFrequency() {
return yFrequency;
}
public void setyFrequency(Double yFrequency) {
this.yFrequency = yFrequency;
}
public Double getzFrequency() {
return zFrequency;
}
public void setzFrequency(Double zFrequency) {
this.zFrequency = zFrequency;
}
public Double getxFreq() {
return xFreq;
}
public void setxFreq(Double xFreq) {
this.xFreq = xFreq;
}
public Double getyFreq() {
return yFreq;
}
public void setyFreq(Double yFreq) {
this.yFreq = yFreq;
}
public Double getzFreq() {
return zFreq;
}
public void setzFreq(Double zFreq) {
this.zFreq = zFreq;
}
}
}

@ -5,6 +5,7 @@ import android.os.Bundle
import android.text.TextUtils import android.text.TextUtils
import android.view.View import android.view.View
import android.widget.ArrayAdapter import android.widget.ArrayAdapter
import android.widget.RadioGroup
import androidx.activity.enableEdgeToEdge import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat import androidx.core.view.ViewCompat
@ -29,6 +30,7 @@ import com.rehome.zhdcoa.utils.RSAAndroid
import com.rehome.zhdcoa.utils.SPUtils import com.rehome.zhdcoa.utils.SPUtils
import com.rehome.zhdcoa.weiget.LoadListView import com.rehome.zhdcoa.weiget.LoadListView
import com.rehome.zhdcoa.weiget.OAToolbar import com.rehome.zhdcoa.weiget.OAToolbar
import com.xuexiang.xui.widget.button.SmoothCheckBox.OnCheckedChangeListener
import com.yolanda.nohttp.NoHttp import com.yolanda.nohttp.NoHttp
import com.yolanda.nohttp.RequestMethod import com.yolanda.nohttp.RequestMethod
import com.yolanda.nohttp.rest.Response import com.yolanda.nohttp.rest.Response
@ -37,6 +39,7 @@ class DeviceManagerListActivity : BaseActivityOaToolbarViewBinding<ActivityDevic
//val typeList = mutableListOf<String>("VIBRATION", "OIL", "FUEL", "THERMAL_IMAGER", "VIBRATION_ZB") //val typeList = mutableListOf<String>("VIBRATION", "OIL", "FUEL", "THERMAL_IMAGER", "VIBRATION_ZB")
//options:[{ value:'online',label:'在线”}{value:'offline',label:'离线”}1 //options:[{ value:'online',label:'在线”}{value:'offline',label:'离线”}1
private var deviceManagerList: MutableList<DeviceManagerListResultBean.DeviceManagerItem> = mutableListOf()//设备管理列表 private var deviceManagerList: MutableList<DeviceManagerListResultBean.DeviceManagerItem> = mutableListOf()//设备管理列表
private var deviceManagerListFilter: MutableList<DeviceManagerListResultBean.DeviceManagerItem> = mutableListOf()//设备管理列表
private var areaList: MutableList<DeviceOnlineStatusAreaBean.DeviceArea> = mutableListOf()//在线设备区域列表 private var areaList: MutableList<DeviceOnlineStatusAreaBean.DeviceArea> = mutableListOf()//在线设备区域列表
private var areaNodeList: MutableList<DeviceOnlineStatusAreaBean.NodeList> = mutableListOf()//在线设备区域列表 private var areaNodeList: MutableList<DeviceOnlineStatusAreaBean.NodeList> = mutableListOf()//在线设备区域列表
@ -46,8 +49,6 @@ class DeviceManagerListActivity : BaseActivityOaToolbarViewBinding<ActivityDevic
//adapter_device_manager_list //adapter_device_manager_list
// DeviceManagerListResultBean // DeviceManagerListResultBean
private var pageNo = 1
private var pageSize = 20
override fun getViewBinding() = ActivityDeviceManagerListBinding.inflate(layoutInflater) override fun getViewBinding() = ActivityDeviceManagerListBinding.inflate(layoutInflater)
@ -59,8 +60,11 @@ class DeviceManagerListActivity : BaseActivityOaToolbarViewBinding<ActivityDevic
}) })
binding.btnQuery.setOnClickListener { binding.btnQuery.setOnClickListener {
pageNo=1 if(deviceManagerList.size>0){
authenticationLoginDeviceAlarmInfoRsa() filterChange()
}else{
authenticationLoginDeviceAlarmInfoRsa()
}
} }
binding.lv.emptyView = binding.tvNodata binding.lv.emptyView = binding.tvNodata
@ -70,17 +74,29 @@ class DeviceManagerListActivity : BaseActivityOaToolbarViewBinding<ActivityDevic
.serializeNulls() .serializeNulls()
.create() .create()
deviceManagerListAdapter = DeviceManagerListAdapter(context, deviceManagerList,object: deviceManagerListAdapter = DeviceManagerListAdapter(context, deviceManagerListFilter,object:
OnItemClickListener{ OnItemClickListener{
override fun onItemClick(position: Int, v: View?) { override fun onItemClick(position: Int, v: View?) {
val item:DeviceManagerListResultBean.DeviceManagerItem= deviceManagerListFilter[position]
showLog(GsonUtils.GsonString(item))
val intent = Intent(context,DeviceOnlinePhotoManageActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP)
intent.putExtra("deviceName", item.name)
intent.putExtra("deviceId", item.code)
startActivity(intent)
} }
},object:OnItemClickListener{ },object:OnItemClickListener{
override fun onItemClick(position: Int, v: View?) { override fun onItemClick(position: Int, v: View?) {
val item:DeviceManagerListResultBean.DeviceManagerItem= deviceManagerListFilter[position]
showLog(GsonUtils.GsonString(item))
val intent = Intent(context,DeviceMonitoringDetailActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP)
intent.putExtra("deviceName", item.name)
intent.putExtra("deviceId", item.code)
intent.putExtra("areaFullName", item.areaFullName)
startActivity(intent)
} }
}) })
binding.lv.adapter = deviceManagerListAdapter binding.lv.adapter = deviceManagerListAdapter
@ -90,12 +106,64 @@ class DeviceManagerListActivity : BaseActivityOaToolbarViewBinding<ActivityDevic
binding.lv.setInterface(LoadListView.ILoadListener { binding.lv.setInterface(LoadListView.ILoadListener {
binding.lv.loadComplete() binding.lv.loadComplete()
}) })
binding.rg.setOnCheckedChangeListener(object : RadioGroup.OnCheckedChangeListener {
override fun onCheckedChanged(group: RadioGroup, checkedId: Int) {
filterChange()
}
})
} }
override fun initData() { override fun initData() {
authenticationLoginDeviceAlarmInfoRsa() authenticationLoginDeviceAlarmInfoRsa()
} }
override fun onRestart() {
super.onRestart()
authenticationLoginDeviceAlarmInfoRsa()
}
private fun filterChange(){
if(deviceManagerList.size>0){
deviceManagerListFilter.clear()
if(binding.rb1.isChecked){
for (item in deviceManagerList) {
if(item.online){
deviceManagerListFilter.add(item)
}
}
}
if(binding.rb2.isChecked){
for (item in deviceManagerList) {
if(!item.online){
deviceManagerListFilter.add(item)
}
}
}
if(!TextUtils.isEmpty(binding.etKey.text.toString().trim())){
if(deviceManagerListFilter.size>0){
val deviceManagerListFilterKeyFilter: MutableList<DeviceManagerListResultBean.DeviceManagerItem> = mutableListOf()
for (item in deviceManagerListFilter) {
if(!TextUtils.isEmpty(item.name)&&item.name.contains(binding.etKey.text.toString().trim())){
deviceManagerListFilterKeyFilter.add(item)
}
}
deviceManagerListFilter.clear()
deviceManagerListFilter.addAll(deviceManagerListFilterKeyFilter)
}
}
showLog("deviceManagerListFilter size:"+deviceManagerListFilter.size.toString())
showLog("deviceManagerList size:"+deviceManagerList.size.toString())
deviceManagerListAdapter.notifyDataSetChanged()
binding.tvNodata.visibility = View.GONE
binding.lv.visibility=View.VISIBLE
}else{
deviceManagerListFilter.clear()
deviceManagerListAdapter.notifyDataSetChanged()
binding.tvNodata.visibility = View.VISIBLE
binding.lv.visibility=View.GONE
}
}
private fun authenticationLoginDeviceAlarmInfoRsa() { private fun authenticationLoginDeviceAlarmInfoRsa() {
try { try {
//AI三维登录接口 //AI三维登录接口
@ -158,6 +226,7 @@ class DeviceManagerListActivity : BaseActivityOaToolbarViewBinding<ActivityDevic
showLog(GsonUtils.GsonString(bean)) showLog(GsonUtils.GsonString(bean))
if (bean != null && bean.code == 20000 && bean.isSuccess && bean.data != null&& bean.data.size>0) { if (bean != null && bean.code == 20000 && bean.isSuccess && bean.data != null&& bean.data.size>0) {
deviceManagerList.clear() deviceManagerList.clear()
deviceManagerListFilter.clear()
deviceManagerList.addAll(bean.data) deviceManagerList.addAll(bean.data)
if(areaNodeList.size>0){ if(areaNodeList.size>0){
@ -172,15 +241,41 @@ class DeviceManagerListActivity : BaseActivityOaToolbarViewBinding<ActivityDevic
} }
showLog(GsonUtils.GsonString(item)) showLog(GsonUtils.GsonString(item))
} }
if(binding.rb1.isChecked){
for (item in deviceManagerList) {
if(item.online){
deviceManagerListFilter.add(item)
}
}
}
if(binding.rb2.isChecked){
for (item in deviceManagerList) {
if(!item.online){
deviceManagerListFilter.add(item)
}
}
}
if(!TextUtils.isEmpty(binding.etKey.text.toString().trim())){
if(deviceManagerListFilter.size>0){
val deviceManagerListFilterKeyFilter: MutableList<DeviceManagerListResultBean.DeviceManagerItem> = mutableListOf()
for (item in deviceManagerListFilter) {
if(!TextUtils.isEmpty(item.name)&&item.name.contains(binding.etKey.text.toString().trim())){
deviceManagerListFilterKeyFilter.add(item)
}
}
deviceManagerListFilter.clear()
deviceManagerListFilter.addAll(deviceManagerListFilterKeyFilter)
}
}
} }
deviceManagerListAdapter.notifyDataSetChanged() deviceManagerListAdapter.notifyDataSetChanged()
binding.tvNodata.visibility = View.GONE binding.tvNodata.visibility = View.GONE
binding.lv.visibility=View.VISIBLE binding.lv.visibility=View.VISIBLE
pageNo++
}else{ }else{
deviceManagerList.clear() deviceManagerList.clear()
deviceManagerListFilter.clear()
deviceManagerListAdapter.notifyDataSetChanged() deviceManagerListAdapter.notifyDataSetChanged()
binding.tvNodata.visibility = View.VISIBLE binding.tvNodata.visibility = View.VISIBLE
binding.lv.visibility=View.GONE binding.lv.visibility=View.GONE

@ -0,0 +1,56 @@
package com.rehome.zhdcoa.ui.activity
import androidx.fragment.app.Fragment
import com.rehome.zhdcoa.adapter.FragmentAdapter
import com.rehome.zhdcoa.base.BaseActivityOaToolbarViewBinding
import com.rehome.zhdcoa.databinding.ActivityDeviceMonitoringDetailBinding
import com.rehome.zhdcoa.ui.fragment.DeviceMonitoringDetailFragment
import com.rehome.zhdcoa.ui.fragment.DeviceMonitoringStatisticsFragment
/**
* Create By HuangWenFei
* 创建日期2026-02-28 15:20
* 描述设备详情
*/
class DeviceMonitoringDetailActivity : BaseActivityOaToolbarViewBinding<ActivityDeviceMonitoringDetailBinding>() {
private val fragments: MutableList<Fragment> = mutableListOf()
private var page = 0
private lateinit var deviceCode:String
private lateinit var deviceName:String
private lateinit var areaFullName:String
override fun getViewBinding() = ActivityDeviceMonitoringDetailBinding.inflate(layoutInflater)
override fun getToolbar() = binding.toolbarView.toolbar
override fun initView() {
initToolbar("设备详情", "",{
})
deviceCode = intent.getStringExtra("deviceId").toString()
deviceName = intent.getStringExtra("deviceName").toString()
areaFullName = intent.getStringExtra("areaFullName").toString()
}
override fun initData() {
initViewPager()
}
private fun initViewPager() {
val titles: MutableList<String> = ArrayList()
titles.add("设备详情")
titles.add("设备统计")
for (i in titles.indices) {
binding.tabs.addTab(binding.tabs.newTab().setText(titles[i]))
}
fragments.add(DeviceMonitoringDetailFragment(deviceCode,deviceName,areaFullName))
fragments.add(DeviceMonitoringStatisticsFragment())
val mFragmentAdapter = FragmentAdapter(
supportFragmentManager, fragments, titles
)
binding.viewpager.adapter = mFragmentAdapter
binding.tabs.setupWithViewPager(binding.viewpager)
binding.viewpager.currentItem = page
}
}

@ -544,6 +544,7 @@ public class DeviceOnlinePhotoManageActivity extends BaseActivity {
@SuppressLint("NotifyDataSetChanged") @SuppressLint("NotifyDataSetChanged")
@Override @Override
public void confirm(String notice) { public void confirm(String notice) {
ll_recycle.setVisibility(View.VISIBLE);
authenticationLoginDeviceAlarmInfoRsa(); authenticationLoginDeviceAlarmInfoRsa();
} }
}); });

@ -0,0 +1,179 @@
package com.rehome.zhdcoa.ui.fragment;
import static com.rehome.zhdcoa.utils.GsonUtils.GsonToBean;
import android.annotation.SuppressLint;
import android.graphics.Color;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.rehome.zhdcoa.Contans;
import com.rehome.zhdcoa.R;
import com.rehome.zhdcoa.base.BaseViewBindingFragment;
import com.rehome.zhdcoa.bean.DeviceDetailListResultBean;
import com.rehome.zhdcoa.bean.DeviceOnlineStatusBean;
import com.rehome.zhdcoa.databinding.FragmentDeviceMonitoringDetailBinding;
import com.rehome.zhdcoa.databinding.FragmentTrainBinding;
import com.rehome.zhdcoa.utils.AuthenticationLoginAIUtils;
import com.rehome.zhdcoa.utils.HttpListener;
import com.rehome.zhdcoa.utils.NohttpUtils;
import com.rehome.zhdcoa.utils.OnAuthenticationLoginListener;
import com.rehome.zhdcoa.utils.RSAAndroid;
import com.yolanda.nohttp.NoHttp;
import com.yolanda.nohttp.RequestMethod;
import com.yolanda.nohttp.rest.Request;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
/**
*
*/
public class DeviceMonitoringDetailFragment extends BaseViewBindingFragment<FragmentDeviceMonitoringDetailBinding> {
private String deviceCode;
private String deviceName;
private String areaFullName;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat sdfDay = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdfHourMinute = new SimpleDateFormat("HH:mm");
private List<DeviceDetailListResultBean.DeviceDetailItem> detailList=new ArrayList<>();
public DeviceMonitoringDetailFragment(String deviceCode,String deviceName,String areaFullName){
this.deviceCode=deviceCode;
this.deviceName=deviceName;
this.areaFullName=areaFullName;
}
@Override
protected FragmentDeviceMonitoringDetailBinding getBinding(@NonNull LayoutInflater inflater, @Nullable ViewGroup container) {
return FragmentDeviceMonitoringDetailBinding.inflate(inflater);
}
@Override
protected void initView() {
// binding.itemSj.tvBjz.setText();
binding.itemQy.tvType.setText("区域");
binding.itemQy.tvValue.setText(areaFullName);
binding.itemQy.tvValue.setTextSize(14);
binding.itemQy.tvValue.setTextColor(Color.WHITE);
binding.itemSbmc.tvType.setText("设备名称");
binding.itemSbmc.tvValue.setText(deviceName);
binding.itemSbmc.tvValue.setTextSize(14);
binding.itemSbmc.tvValue.setTextColor(Color.WHITE);
binding.itemXSpeed.tvType.setText("X轴速度 (mm/s)");
binding.itemYSpeed.tvType.setText("Y轴速度 (mm/s)");
binding.itemZSpeed.tvType.setText("Z轴速度 (mm/s)");
binding.itemXAddSpeed.tvType.setText("X轴加速度 (m/s²)");
binding.itemYAddSpeed.tvType.setText("Y轴加速度 (m/s²)");
binding.itemZAddSpeed.tvType.setText("Z轴加速度 (m/s²)");
}
@Override
protected void initData() {
//设备详情
//http://10.19.0.17:1700/dserver/device/vibration/monitoring/list?deviceCode=002c0077&startTime=2026-03-01+11:16:00&endTime=2026-03-02+23:59:59&v=1772421370491
//设备统计-设备运行率
//http://10.19.0.17:1700/dserver/device/operationRate/002c0077
authenticationLoginDeviceAlarmInfoRsa();
}
private void authenticationLoginDeviceAlarmInfoRsa() {
try {
//AI三维登录接口
String userName = Contans.SP.DeviceAlermInfoAccount;
String strPublicDecode = RSAAndroid.decryptByPublicKeyForSpiltStr(
Contans.SP.DeviceAlermInfoPwd,
RSAAndroid.publicRsaKeyLocal
);
AuthenticationLoginAIUtils.authenticationDeviceAlermInfoRsaShowProgress(requireActivity(),userName,strPublicDecode,new OnAuthenticationLoginListener(){
@Override
public void onAuthenticationSuccess(boolean result, String token) {
if(token!=null&&token.isEmpty()){
//登录失败
showToast("设备状态智能监测及分析平台登录失败");
}else{
//登录成功
//获取设备详情数据
getDeviceDetailData();
}
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
public void getDeviceDetailData() {
//静态方法getInstance()使用默认时区和语言环境获得一个日历。
Calendar calendarNow = Calendar.getInstance();
//add()增加日期以天为单位Calendar封装了很多静态的操作时间的单位
//增加10天负数则为减少天数
calendarNow.add(Calendar.DATE, -1);
//输出增加10天后的时间;
String startTime = sdf.format(calendarNow.getTime());
showLog("startTime: "+startTime);
Calendar calendarEnd = Calendar.getInstance();
String endTime = sdfDay.format(calendarEnd.getTime())+" 23:59:59";
showLog("endTime: "+endTime);
String url = Contans.IP + Contans.DeviceDetailDataUrl;
Request<String> request = NoHttp.createStringRequest(url, RequestMethod.GET);
request.add("deviceCode",deviceCode);
request.add("startTime",startTime);
request.add("endTime",endTime);
NohttpUtils.getInstance().add(requireActivity(),0, request, new HttpListener<String>() {
@SuppressLint({"SetTextI18n", "DefaultLocale"})
@Override
public void onSucceed(int what, com.yolanda.nohttp.rest.Response<String> response) {
String result = response.get();
showLog(result);
DeviceDetailListResultBean bean = GsonToBean(result, DeviceDetailListResultBean.class);
if(bean!=null && bean.getCode()==20000 && bean.isSuccess() && bean.getData()!=null&& !bean.getData().isEmpty()){
detailList.clear();
detailList.addAll(bean.getData());
DeviceDetailListResultBean.DeviceDetailItem item = detailList.get(0);
if(!TextUtils.isEmpty(item.getDeviceTime())){
binding.itemSj.tvDeviceSj.setText(item.getDeviceTime());
}
binding.itemTemperature.tvValue.setText(item.getTemperature().toString());
binding.itemXSpeed.tvValue.setText(item.getxSpeed().toString());
binding.itemYSpeed.tvValue.setText(item.getySpeed().toString());
binding.itemZSpeed.tvValue.setText(item.getzSpeed().toString());
binding.itemXAddSpeed.tvValue.setText(item.getxAcceleration().toString());
binding.itemYAddSpeed.tvValue.setText(item.getyAcceleration().toString());
binding.itemZAddSpeed.tvValue.setText(item.getzAcceleration().toString());
}else{
showLog("数据加载失败");
}
}
@Override
public void onFailed(int what, com.yolanda.nohttp.rest.Response<String> response) {
}
});
}
}

@ -0,0 +1,38 @@
package com.rehome.zhdcoa.ui.fragment;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.rehome.zhdcoa.R;
import com.rehome.zhdcoa.base.BaseViewBindingFragment;
import com.rehome.zhdcoa.databinding.FragmentDeviceMonitoringDetailBinding;
import com.rehome.zhdcoa.databinding.FragmentDeviceMonitoringStatisticsBinding;
/**
*
*/
public class DeviceMonitoringStatisticsFragment extends BaseViewBindingFragment<FragmentDeviceMonitoringStatisticsBinding> {
@Override
protected FragmentDeviceMonitoringStatisticsBinding getBinding(@NonNull LayoutInflater inflater, @Nullable ViewGroup container) {
return FragmentDeviceMonitoringStatisticsBinding.inflate(inflater);
}
@Override
protected void initView() {
}
@Override
protected void initData() {
}
}

@ -4,20 +4,20 @@
<item android:state_pressed="true"> <item android:state_pressed="true">
<shape> <shape>
<corners android:radius="18dp"/> <corners android:radius="18dp"/>
<solid android:color="#ffffff" /> <solid android:color="#FFEFDB" />
<stroke <stroke
android:width="2dp" android:width="2dp"
android:color="#f8f8f8"/> android:color="#0099ff"/>
</shape> </shape>
</item> </item>
<item android:state_selected="true"> <item android:state_selected="true">
<shape> <shape>
<corners android:radius="18dp"/> <corners android:radius="18dp"/>
<solid android:color="#ffffff" /> <solid android:color="#FFEFDB" />
<stroke <stroke
android:width="2dp" android:width="2dp"
android:color="#f8f8f8"/> android:color="#0099ff"/>
</shape> </shape>
</item> </item>

@ -4,7 +4,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical" android:orientation="vertical"
android:background="#000000" android:background="#242e2f"
tools:context=".ui.activity.DeviceAlarmInfoDetailActivity"> tools:context=".ui.activity.DeviceAlarmInfoDetailActivity">
<include <include

@ -134,25 +134,17 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="40dp" android:layout_height="40dp"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_weight="2" /> android:gravity="center_vertical|end"
</LinearLayout> android:layout_weight="2" >
<Button
<LinearLayout android:id="@+id/btn_query"
android:layout_width="match_parent" style="@style/button"
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:layout_gravity="center_vertical" android:layout_height="38dp"
android:layout_marginStart="5dp" android:layout_marginEnd="10dp"
android:layout_marginEnd="5dp" android:textSize="18sp"
android:layout_marginBottom="10dp"> android:text="查询" />
</RelativeLayout>
<Button
android:id="@+id/btn_query"
style="@style/button"
android:layout_marginEnd="10dp"
android:layout_weight="1"
android:textSize="18sp"
android:text="查询" />
</LinearLayout> </LinearLayout>
<FrameLayout <FrameLayout
android:layout_width="match_parent" android:layout_width="match_parent"

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".ui.activity.DeviceMonitoringDetailActivity">
<include
android:id="@+id/toolbarView"
layout="@layout/layout_base" />
<com.google.android.material.tabs.TabLayout
android:id="@+id/tabs"
android:layout_width="wrap_content"
android:layout_height="35dp"
android:layout_gravity="center"
android:background="@drawable/bg_gray_solid"
app:tabBackground="@drawable/bg_tab"
app:tabIndicatorHeight="0dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
app:tabMaxWidth="120dp"
app:tabMinWidth="1200dp"
app:tabSelectedTextColor="@color/tabSelectedTextColor"
app:tabTextColor="@color/tabTextColor" />
<androidx.viewpager.widget.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
<!-- android:background="#FFEFDB"-->

@ -0,0 +1,245 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#242e2f"
android:orientation="vertical"
tools:context=".ui.fragment.DeviceMonitoringDetailFragment">
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:ignore="UselessParent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:id="@+id/ll_temperature"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<include
android:id="@+id/item_sj"
layout="@layout/item_head_device_detail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10px"
android:layout_marginEnd="10px"
android:layout_marginBottom="10dp" />
<include
android:id="@+id/item_qy"
layout="@layout/item_device_detail_row"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="5dp" />
<include
android:id="@+id/item_sbmc"
layout="@layout/item_device_detail_row"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="5dp" />
<include
android:id="@+id/item_temperature"
layout="@layout/item_device_detail_row"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="5dp"
android:text="温度" />
<include
android:id="@+id/item_speed"
layout="@layout/item_device_detail_row_type"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="5dp" />
<include
android:id="@+id/item_x_speed"
layout="@layout/item_device_detail_row"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="5dp" />
<include
android:id="@+id/item_y_speed"
layout="@layout/item_device_detail_row"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="5dp" />
<include
android:id="@+id/item_z_speed"
layout="@layout/item_device_detail_row"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="5dp" />
<include
android:id="@+id/item_add_speed"
layout="@layout/item_device_detail_row_type_add_speed"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="5dp" />
<include
android:id="@+id/item_x_add_speed"
layout="@layout/item_device_detail_row"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="5dp" />
<include
android:id="@+id/item_y_add_speed"
layout="@layout/item_device_detail_row"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="5dp" />
<include
android:id="@+id/item_z_add_speed"
layout="@layout/item_device_detail_row"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="5dp" />
<include
android:id="@+id/item_wy"
layout="@layout/item_device_detail_row_type_wy"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="5dp" />
<include
android:id="@+id/item_x_wy"
layout="@layout/item_device_detail_row"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="5dp" />
<include
android:id="@+id/item_y_wy"
layout="@layout/item_device_detail_row"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="5dp" />
<include
android:id="@+id/item_z_wy"
layout="@layout/item_device_detail_row"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="5dp" />
<include
android:id="@+id/item_pl"
layout="@layout/item_device_detail_row_type_pl"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="5dp" />
<include
android:id="@+id/item_x_pl"
layout="@layout/item_device_detail_row"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="5dp" />
<include
android:id="@+id/item_y_pl"
layout="@layout/item_device_detail_row"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="5dp" />
<include
android:id="@+id/item_z_pl"
layout="@layout/item_device_detail_row"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="5dp" />
<include
android:id="@+id/item_zlfl"
layout="@layout/item_device_detail_row_type_zlfl"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="5dp" />
<include
android:id="@+id/item_x_zlfl"
layout="@layout/item_device_detail_row"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="5dp" />
<include
android:id="@+id/item_y_zlfl"
layout="@layout/item_device_detail_row"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="5dp" />
<include
android:id="@+id/item_z_zlfl"
layout="@layout/item_device_detail_row"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="5dp" />
</LinearLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ui.fragment.DeviceMonitoringStatisticsFragment">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/bottomBtn"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_alignParentBottom="true"
android:background="#138CF2"
android:visibility="gone"
android:gravity="center">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="分类课程"
android:textColor="#ffffff" />
</LinearLayout>
<ListView
android:id="@+id/lv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/bottomBtn"
android:layout_marginStart="5dp"
android:layout_marginEnd="5dp"
android:divider="@null"
android:dividerHeight="5dp" />
</RelativeLayout>
<LinearLayout
android:id="@+id/lv_member_nodata"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:visibility="gone">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="暂无数据" />
</LinearLayout>
</FrameLayout>

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ll_all"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:background="#2D3849"
android:minHeight="35dp"
android:orientation="vertical">
<View
android:id="@+id/v_head"
android:layout_width="match_parent"
android:layout_height="1dp"
android:visibility="gone"
android:background="#524658"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="35dp">
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:visibility="gone"
android:background="#524658" />
<TextView
android:id="@+id/tv_type"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1.4"
android:paddingStart="15dp"
android:gravity="start|center_vertical"
android:textSize="14sp"
android:textColor="#ffffff"
android:text="测点温度(°C)" />
<TextView
android:id="@+id/tv_value"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="end|center_vertical"
android:layout_marginLeft="10px"
android:layout_weight="2.5"
android:paddingEnd="10dp"
android:textSize="16sp"
android:textColor="#67C23A"
android:text="39.9171" />
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:visibility="gone"
android:background="#524658" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:visibility="gone"
android:background="#524658" />
</LinearLayout>

@ -0,0 +1,70 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ll_all"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:minHeight="20dp"
android:orientation="vertical">
<View
android:id="@+id/v_head"
android:layout_width="match_parent"
android:layout_height="1dp"
android:visibility="gone"
android:background="#524658"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="20dp">
<View
android:layout_width="2dp"
android:layout_height="match_parent"
android:background="#409EFF" />
<TextView
android:id="@+id/tv_type"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1.4"
android:paddingStart="6dp"
android:gravity="start|center_vertical"
android:textSize="13sp"
android:textColor="#999999"
android:text="速度数据" />
<TextView
android:id="@+id/tv_value"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="end|center_vertical"
android:layout_marginLeft="10px"
android:layout_weight="2.5"
android:paddingEnd="10dp"
android:textSize="16sp"
android:textColor="#67C23A"
android:visibility="invisible"
android:text="39.9171" />
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:visibility="gone"
android:background="#524658" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:visibility="gone"
android:background="#524658" />
</LinearLayout>

@ -0,0 +1,70 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ll_all"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:minHeight="20dp"
android:orientation="vertical">
<View
android:id="@+id/v_head"
android:layout_width="match_parent"
android:layout_height="1dp"
android:visibility="gone"
android:background="#524658"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="20dp">
<View
android:layout_width="2dp"
android:layout_height="match_parent"
android:background="#409EFF" />
<TextView
android:id="@+id/tv_type"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1.4"
android:paddingStart="6dp"
android:gravity="start|center_vertical"
android:textSize="13sp"
android:textColor="#999999"
android:text="加速度数据" />
<TextView
android:id="@+id/tv_value"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="end|center_vertical"
android:layout_marginLeft="10px"
android:layout_weight="2.5"
android:paddingEnd="10dp"
android:textSize="16sp"
android:textColor="#67C23A"
android:visibility="invisible"
android:text="39.9171" />
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:visibility="gone"
android:background="#524658" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:visibility="gone"
android:background="#524658" />
</LinearLayout>

@ -0,0 +1,70 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ll_all"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:minHeight="20dp"
android:orientation="vertical">
<View
android:id="@+id/v_head"
android:layout_width="match_parent"
android:layout_height="1dp"
android:visibility="gone"
android:background="#524658"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="20dp">
<View
android:layout_width="2dp"
android:layout_height="match_parent"
android:background="#409EFF" />
<TextView
android:id="@+id/tv_type"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1.4"
android:paddingStart="6dp"
android:gravity="start|center_vertical"
android:textSize="13sp"
android:textColor="#999999"
android:text="频率数据" />
<TextView
android:id="@+id/tv_value"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="end|center_vertical"
android:layout_marginLeft="10px"
android:layout_weight="2.5"
android:paddingEnd="10dp"
android:textSize="16sp"
android:textColor="#67C23A"
android:visibility="invisible"
android:text="39.9171" />
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:visibility="gone"
android:background="#524658" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:visibility="gone"
android:background="#524658" />
</LinearLayout>

@ -0,0 +1,70 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ll_all"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:minHeight="20dp"
android:orientation="vertical">
<View
android:id="@+id/v_head"
android:layout_width="match_parent"
android:layout_height="1dp"
android:visibility="gone"
android:background="#524658"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="20dp">
<View
android:layout_width="2dp"
android:layout_height="match_parent"
android:background="#409EFF" />
<TextView
android:id="@+id/tv_type"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1.4"
android:paddingStart="6dp"
android:gravity="start|center_vertical"
android:textSize="13sp"
android:textColor="#999999"
android:text="位移数据" />
<TextView
android:id="@+id/tv_value"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="end|center_vertical"
android:layout_marginLeft="10px"
android:layout_weight="2.5"
android:paddingEnd="10dp"
android:textSize="16sp"
android:textColor="#67C23A"
android:visibility="invisible"
android:text="39.9171" />
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:visibility="gone"
android:background="#524658" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:visibility="gone"
android:background="#524658" />
</LinearLayout>

@ -0,0 +1,70 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ll_all"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:minHeight="20dp"
android:orientation="vertical">
<View
android:id="@+id/v_head"
android:layout_width="match_parent"
android:layout_height="1dp"
android:visibility="gone"
android:background="#524658"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="20dp">
<View
android:layout_width="2dp"
android:layout_height="match_parent"
android:background="#409EFF" />
<TextView
android:id="@+id/tv_type"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1.4"
android:paddingStart="6dp"
android:gravity="start|center_vertical"
android:textSize="13sp"
android:textColor="#999999"
android:text="直流分量数据" />
<TextView
android:id="@+id/tv_value"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="end|center_vertical"
android:layout_marginLeft="10px"
android:layout_weight="2.5"
android:paddingEnd="10dp"
android:textSize="16sp"
android:textColor="#67C23A"
android:visibility="invisible"
android:text="39.9171" />
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:visibility="gone"
android:background="#524658" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:visibility="gone"
android:background="#524658" />
</LinearLayout>

@ -0,0 +1,69 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ll_all"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:minHeight="45dp"
android:orientation="vertical">
<View
android:id="@+id/v_head"
android:layout_width="match_parent"
android:layout_height="1dp"
android:visibility="gone"
android:background="#524658"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="45dp">
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:visibility="gone"
android:background="#524658" />
<TextView
android:id="@+id/tv_status"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1.4"
android:paddingStart="5dp"
android:gravity="start|center_vertical"
android:textSize="18sp"
android:textColor="#409EFF"
android:text="最新监测数据" />
<TextView
android:id="@+id/tv_device_sj"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="end|center_vertical"
android:layout_marginLeft="10px"
android:layout_weight="2.5"
android:paddingEnd="5dp"
android:textSize="14sp"
android:textColor="#ffffff"
android:text="" />
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:visibility="gone"
android:background="#524658" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#524658" />
</LinearLayout>

@ -100,6 +100,8 @@
<item>#FFDD00</item> <item>#FFDD00</item>
<item>#FF0000</item> <item>#FF0000</item>
</string-array> </string-array>
<!-- TODO: Remove or change this placeholder text -->
<string name="hello_blank_fragment">Hello blank fragment</string>
</resources> </resources>

Loading…
Cancel
Save