desc:传感器设置

main
xiaowusky 2 years ago
parent ac25a7dd6f
commit d0f3aa8e59

@ -0,0 +1,48 @@
package com.yinuo.safetywatcher.watcher.adapter
import android.content.Intent
import android.view.LayoutInflater
import android.view.ViewGroup
import com.yinuo.safetywatcher.R
import com.yinuo.safetywatcher.databinding.LayoutItemSensorBinding
import com.yinuo.safetywatcher.watcher.base.BaseRvAdapter
import com.yinuo.safetywatcher.watcher.bean.SensorData
import com.yinuo.safetywatcher.watcher.ui.SensorSettingActivity
class SensorAdapter :
BaseRvAdapter<SensorData, LayoutItemSensorBinding, SensorAdapter.SensorViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SensorViewHolder {
return SensorViewHolder(
LayoutItemSensorBinding.inflate(
LayoutInflater.from(parent.context),
parent,
false
)
);
}
class SensorViewHolder(private val binding: LayoutItemSensorBinding) :
BaseViewHolder<SensorData, LayoutItemSensorBinding>(binding) {
override fun bindView(data: SensorData) {
val context = binding.root.context
binding.sensorSetting.setOnClickListener {
context.startActivity(Intent(context, SensorSettingActivity::class.java))
}
binding.sensorName.text = data.name
val state = data.state
binding.sensorStatus.text = context.getText(getShowStatus(state))
binding.sensorStatus.setTextColor(context.getColor(getShowStatusColor(state)))
}
private fun getShowStatusColor(state: Int): Int {
return if (state == 0) R.color.color_ok else R.color.color_error
}
private fun getShowStatus(state: Int): Int {
return if (state == 0) R.string.status_ok else R.string.status_error
}
}
}

@ -0,0 +1,31 @@
package com.yinuo.safetywatcher.watcher.base
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import androidx.recyclerview.widget.RecyclerView.ViewHolder
import androidx.viewbinding.ViewBinding
abstract class BaseRvAdapter<T, B : ViewBinding, VH : BaseRvAdapter.BaseViewHolder<T, B>> :
RecyclerView.Adapter<VH>() {
private val mDatas = mutableListOf<T>()
fun setData(values: List<T>) {
mDatas.addAll(values)
notifyDataSetChanged()
}
override fun getItemCount(): Int {
return mDatas.size
}
override fun onBindViewHolder(holder: VH, position: Int) {
holder.bindView(mDatas[position])
}
abstract class BaseViewHolder<T, B : ViewBinding>(binding: B) : ViewHolder(binding.root) {
abstract fun bindView(data: T)
}
}

@ -0,0 +1,3 @@
package com.yinuo.safetywatcher.watcher.bean
data class SensorData(val name: String, val state: Int = 0)

@ -1,9 +1,12 @@
package com.yinuo.safetywatcher.watcher.ui package com.yinuo.safetywatcher.watcher.ui
import android.view.View import android.view.View
import androidx.recyclerview.widget.LinearLayoutManager
import com.yinuo.safetywatcher.R import com.yinuo.safetywatcher.R
import com.yinuo.safetywatcher.databinding.ActivitySensorBinding import com.yinuo.safetywatcher.databinding.ActivitySensorBinding
import com.yinuo.safetywatcher.watcher.adapter.SensorAdapter
import com.yinuo.safetywatcher.watcher.base.NoOptionsActivity import com.yinuo.safetywatcher.watcher.base.NoOptionsActivity
import com.yinuo.safetywatcher.watcher.bean.SensorData
class SensorActivity : NoOptionsActivity() { class SensorActivity : NoOptionsActivity() {
@ -20,5 +23,13 @@ class SensorActivity : NoOptionsActivity() {
} }
override fun initView() { override fun initView() {
val adapter = SensorAdapter()
val list = mutableListOf<SensorData>()
list.add(SensorData("传感器A"))
list.add(SensorData("传感器B"))
adapter.setData(list)
mBingding.rvSensor.layoutManager = LinearLayoutManager(this@SensorActivity)
mBingding.rvSensor.adapter = adapter
} }
} }

@ -1,12 +1,13 @@
package com.yinuo.safetywatcher.watcher.ui package com.yinuo.safetywatcher.watcher.ui
import android.content.Intent
import android.view.View import android.view.View
import com.yinuo.safetywatcher.R import com.yinuo.safetywatcher.R
import com.yinuo.safetywatcher.databinding.ActivitySensorSettingBinding import com.yinuo.safetywatcher.databinding.ActivitySensorSettingBinding
import com.yinuo.safetywatcher.watcher.base.NoOptionsActivity import com.yinuo.safetywatcher.watcher.base.NoOptionsActivity
class SensorSettingActivity : NoOptionsActivity() { class SensorSettingActivity : NoOptionsActivity() {
private val mBingding by lazy { private val mBinding by lazy {
ActivitySensorSettingBinding.inflate(layoutInflater) ActivitySensorSettingBinding.inflate(layoutInflater)
} }
@ -15,9 +16,12 @@ class SensorSettingActivity : NoOptionsActivity() {
} }
override fun generateContentView(): View { override fun generateContentView(): View {
return mBingding.root return mBinding.root
} }
override fun initView() { override fun initView() {
mBinding.tvWarnSetting.setOnClickListener {
// startActivity(Intent(this@SensorSettingActivity, ))
}
} }
} }

@ -2,9 +2,5 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android" <shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"> android:shape="rectangle">
<solid android:color="@color/white_20" /> <solid android:color="@color/white_20" />
<corners <corners android:radius="@dimen/_20dp" />
android:bottomLeftRadius="10dp"
android:bottomRightRadius="10dp"
android:topLeftRadius="10dp"
android:topRightRadius="10dp" />
</shape> </shape>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/_2A4284" />
<corners android:radius="@dimen/_20dp" />
</shape>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/_842A2A" />
<corners android:radius="@dimen/_20dp" />
</shape>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/_242f4d" />
<corners android:radius="@dimen/_20dp" />
</shape>

@ -4,4 +4,8 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_sensor"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout> </LinearLayout>

@ -1,7 +1,96 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent"
android:orientation="vertical"
android:paddingStart="@dimen/_121dp"
android:paddingTop="@dimen/_61dp">
<EditText
android:id="@+id/et_name"
android:layout_width="@dimen/_600dp"
android:layout_height="@dimen/_100dp"
android:textSize="@dimen/_30dp"
android:textColor="@color/white"
android:textColorHint="@color/white"
android:hint="@string/sensor_name_txt"
android:paddingStart="@dimen/_30dp"
android:background="@drawable/cloud_sync_btn_bg"/>
<EditText
android:id="@+id/et_step"
android:layout_width="@dimen/_600dp"
android:layout_height="@dimen/_100dp"
android:layout_marginTop="@dimen/_40dp"
android:textSize="@dimen/_30dp"
android:textColor="@color/white"
android:textColorHint="@color/white"
android:hint="@string/sensor_step_txt"
android:paddingStart="@dimen/_30dp"
android:background="@drawable/cloud_sync_btn_bg"/>
<RelativeLayout
android:layout_width="@dimen/_600dp"
android:layout_height="@dimen/_100dp"
android:layout_marginTop="@dimen/_40dp"
android:gravity="center"
android:background="@drawable/cloud_sync_btn_bg">
<EditText
android:id="@+id/et_type"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textSize="@dimen/_30dp"
android:textColor="@color/white"
android:textColorHint="@color/white"
android:paddingStart="@dimen/_30dp"
android:hint="@string/sensor_type_txt"
android:background="#00000000"/>
<ImageView
android:layout_width="@dimen/_31dp"
android:layout_height="@dimen/_17dp"
android:src="@mipmap/ic_arrow_down"
android:layout_centerVertical="true"
android:layout_alignParentEnd="true"
android:layout_marginEnd="@dimen/_30dp"/>
</RelativeLayout>
<TextView
android:id="@+id/tv_warn_setting"
android:layout_width="@dimen/_380dp"
android:layout_height="@dimen/_80dp"
android:layout_marginTop="@dimen/_40dp"
android:textColor="@color/white"
android:gravity="center"
android:textSize="@dimen/_30dp"
android:text="@string/sensor_warn_setting_txt"
android:background="@drawable/warn_setting_btn_bg"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_40dp">
<TextView
android:id="@+id/tv_save"
android:layout_width="@dimen/_160dp"
android:layout_height="@dimen/_80dp"
android:textColor="@color/white"
android:gravity="center"
android:text="@string/save"
android:textSize="@dimen/_30dp"
android:background="@drawable/save_btn_bg"/>
<TextView
android:id="@+id/tv_sensor_init"
android:layout_width="@dimen/_260dp"
android:layout_height="@dimen/_80dp"
android:layout_marginStart="@dimen/_38dp"
android:textColor="@color/white"
android:gravity="center"
android:textSize="@dimen/_30dp"
android:text="@string/sensor_init_txt"
android:background="@drawable/sensor_init_btn_bg"/>
</LinearLayout>
</LinearLayout> </LinearLayout>

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="@dimen/_108dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:id="@+id/sensor_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_172dp"
android:text="传感器"
android:textColor="@color/white"
android:textSize="@dimen/_30dp" />
<TextView
android:id="@+id/sensor_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_372dp"
android:text="正常"
android:textColor="@color/color_ok"
android:textSize="@dimen/_30dp" />
<Space
android:layout_width="0dp"
android:layout_height="1px"
android:layout_weight="1" />
<TextView
android:id="@+id/sensor_setting"
android:layout_width="@dimen/_132dp"
android:layout_height="@dimen/_55dp"
android:layout_marginEnd="@dimen/_172dp"
android:background="@mipmap/op_bg"
android:gravity="center"
android:text="@string/setting"
android:textColor="@color/white"
android:textSize="@dimen/_30dp" />
</LinearLayout>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

@ -13,4 +13,10 @@
<color name="_242f4d">#242F4D</color> <color name="_242f4d">#242F4D</color>
<color name="_242f4d_30">#4C242F4D</color> <color name="_242f4d_30">#4C242F4D</color>
<color name="_303852">#303852</color> <color name="_303852">#303852</color>
<color name="_2A4284">#2A4284</color>
<color name="_842A2A">#842A2A</color>
<color name="color_ok">#01E41C</color>
<color name="color_offline">#999999</color>
<color name="color_error">#E40101</color>
</resources> </resources>

@ -32,4 +32,17 @@
<dimen name="_33dp">33px</dimen> <dimen name="_33dp">33px</dimen>
<dimen name="_37dp">37px</dimen> <dimen name="_37dp">37px</dimen>
<dimen name="_27dp">27px</dimen> <dimen name="_27dp">27px</dimen>
<dimen name="_132dp">132px</dimen>
<dimen name="_55dp">55px</dimen>
<dimen name="_172dp">172px</dimen>
<dimen name="_372dp">372px</dimen>
<dimen name="_61dp">61px</dimen>
<dimen name="_600dp">600px</dimen>
<dimen name="_380dp">380px</dimen>
<dimen name="_80dp">80px</dimen>
<dimen name="_160dp">160px</dimen>
<dimen name="_260dp">260px</dimen>
<dimen name="_38dp">38px</dimen>
<dimen name="_20dp">20px</dimen>
<dimen name="_17dp">17px</dimen>
</resources> </resources>

@ -23,6 +23,17 @@
<string name="search">搜索</string> <string name="search">搜索</string>
<string name="export">导出</string> <string name="export">导出</string>
<string name="status_ok">正常</string>
<string name="status_offline">离线</string>
<string name="status_error">故障</string>
<string name="sensor_warn_setting_txt">传感器报警值设定</string>
<string name="save">保存</string>
<string name="sensor_init_txt">传感器校准</string>
<string name="sensor_name_txt">传感器名称</string>
<string name="sensor_step_txt">传感器量程</string>
<string name="sensor_type_txt">传感器种类</string>
<string-array name="excel_column"> <string-array name="excel_column">
<item>时间</item> <item>时间</item>
<item>属性</item> <item>属性</item>

@ -7,7 +7,7 @@
<item name="colorPrimaryDark">@color/colorTheme</item><!--状态栏颜色--> <item name="colorPrimaryDark">@color/colorTheme</item><!--状态栏颜色-->
<item name="colorAccent">@color/colorTheme</item><!--控制各个控件被选中时的颜色--> <item name="colorAccent">@color/colorTheme</item><!--控制各个控件被选中时的颜色-->
<item name="toolbarStyle">@style/toolbar</item> <item name="toolbarStyle">@style/toolbar</item>
<item name="android:windowBackground">@color/colorTheme</item> <item name="android:windowBackground">@null</item>
</style> </style>
<style name="toolbar" parent="Base.Widget.AppCompat.Toolbar"> <style name="toolbar" parent="Base.Widget.AppCompat.Toolbar">

Loading…
Cancel
Save