瀏覽代碼

宿舍项目客厅分机增加智能家居控制界面,暂时添加灯光和插座显示,对应功能待增加

weizhengliang 9 月之前
父節點
當前提交
b590535360
共有 21 個文件被更改,包括 694 次插入4 次删除
  1. 7 2
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/activity/CallingbedDormitoryActivity.kt
  2. 6 0
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/di/CallingbedComponent.kt
  3. 95 0
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/fragment/DormLightSetFragment.kt
  4. 83 0
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/fragment/DormReceptacleSetFragment.kt
  5. 111 0
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/fragment/DormSmartHomeFragment.kt
  6. 8 2
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/fragment/DromMianFragment.kt
  7. 二進制
      android_bed/src/main/res/drawable/ic_curtain.png
  8. 二進制
      android_bed/src/main/res/drawable/ic_light.png
  9. 二進制
      android_bed/src/main/res/drawable/ic_receptacle.png
  10. 6 0
      android_bed/src/main/res/drawable/selector_smart_home_bg.xml
  11. 8 0
      android_bed/src/main/res/drawable/smart_home_btn_select_bg.xml
  12. 8 0
      android_bed/src/main/res/drawable/smart_home_btn_select_bg2.xml
  13. 123 0
      android_bed/src/main/res/layout/fragment_dorm_light_set.xml
  14. 165 0
      android_bed/src/main/res/layout/fragment_dorm_receptacle_set.xml
  15. 74 0
      android_bed/src/main/res/layout/fragment_smart_home.xml
  16. 二進制
      android_bed/src/main/res/mipmap-hdpi/d_btn_bg.png
  17. 二進制
      android_bed/src/main/res/mipmap-hdpi/d_light_img.png
  18. 二進制
      android_bed/src/main/res/mipmap-hdpi/d_light_off.png
  19. 二進制
      android_bed/src/main/res/mipmap-hdpi/d_light_on.png
  20. 二進制
      android_bed/src/main/res/mipmap-hdpi/d_receptacle_img.png
  21. 二進制
      android_bed/src/main/res/mipmap-hdpi/d_timer.png

+ 7 - 2
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/activity/CallingbedDormitoryActivity.kt

@@ -102,10 +102,9 @@ class CallingbedDormitoryActivity :BaseActivity<BedCallingbedActivityPresenter,
     private val dormFragment = "dorm_fragment"
     private val dormFragment = "dorm_fragment"
     //交互记录页面
     //交互记录页面
     private val dormCallRecordFragment = "dorm_call_record_fragment"
     private val dormCallRecordFragment = "dorm_call_record_fragment"
-
     private val dormThemeFragment = "dorm_theme_fragment"
     private val dormThemeFragment = "dorm_theme_fragment"
-
     private val dormDialFragment = "dorm_dial_fragment"
     private val dormDialFragment = "dorm_dial_fragment"
+    private val dormSmartHomeFragment = "dorm_smart_home_fragment"
 
 
     private var fullFragment: Fragment? = null
     private var fullFragment: Fragment? = null
 
 
@@ -447,6 +446,12 @@ class CallingbedDormitoryActivity :BaseActivity<BedCallingbedActivityPresenter,
         }
         }
     }
     }
 
 
+    fun showSmartHomeFragment() {
+        if (!dormSmartHomeFragment.equals(curFragment)) {
+            switchFragment(R.id.callingbed_main_frame, DormSmartHomeFragment(), dormSmartHomeFragment)
+        }
+    }
+
     fun setThemeBg(id: Int) {
     fun setThemeBg(id: Int) {
         try {
         try {
             rl_dorm_main_view.setBackgroundResource(id)
             rl_dorm_main_view.setBackgroundResource(id)

+ 6 - 0
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/di/CallingbedComponent.kt

@@ -108,4 +108,10 @@ interface CallingbedComponent {
     fun inject(fragment: DormThemeFragment)
     fun inject(fragment: DormThemeFragment)
 
 
     fun inject(fragment: DormDialCallFragment)
     fun inject(fragment: DormDialCallFragment)
+
+    fun inject(fragment: DormSmartHomeFragment)
+
+    fun inject(fragment: DormLightSetFragment)
+
+    fun inject(fragment: DormReceptacleSetFragment)
 }
 }

+ 95 - 0
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/fragment/DormLightSetFragment.kt

@@ -0,0 +1,95 @@
+package com.wdkl.app.ncs.callingbed.fragment
+
+import com.enation.javashop.net.engine.model.NetState
+import com.wdkl.app.ncs.callingbed.R
+import com.wdkl.app.ncs.callingbed.databinding.FragmentDormLightSetBinding
+import com.wdkl.app.ncs.callingbed.launch.CallingbedLaunch
+import com.wdkl.ncs.android.lib.base.BaseFragment
+import com.wdkl.ncs.android.lib.utils.showMessage
+import com.wdkl.ncs.android.lib.vo.filter
+import com.wdkl.ncs.android.middleware.logic.contract.callingbed.BedMomMianFragmentContract
+import com.wdkl.ncs.android.middleware.logic.presenter.callingbed.BedMomMianFragmentPresenter
+import com.wdkl.ncs.android.middleware.model.dos.EventDO
+import com.wdkl.ncs.android.middleware.model.dos.PartSettingDO
+import com.wdkl.ncs.android.middleware.model.dos.RoleDO
+import com.wdkl.ncs.android.middleware.model.vo.BedRelativeVO
+import com.wdkl.ncs.android.middleware.model.vo.CustomerInfoVO
+import com.wdkl.ncs.android.middleware.model.vo.InteractionVO
+import kotlinx.android.synthetic.main.fragment_dorm_light_set.*
+
+class DormLightSetFragment: BaseFragment<BedMomMianFragmentPresenter, FragmentDormLightSetBinding>(), BedMomMianFragmentContract.View {
+    val TAG = "DormLightSetFragment"
+
+    override fun getLayId(): Int {
+        return R.layout.fragment_dorm_light_set
+    }
+
+    override fun bindDagger() {
+        CallingbedLaunch.component.inject(this)
+    }
+
+    override fun init() {
+        //todo
+    }
+
+    override fun bindEvent() {
+        tv_living_room_light.setOnClickListener {
+
+        }
+
+        tv_bed_room_light.setOnClickListener {
+
+        }
+
+        tv_kitchen_light.setOnClickListener {
+
+        }
+    }
+
+    override fun destory() {
+    }
+
+    override fun showCustomInfo(customInfo: CustomerInfoVO) {
+
+    }
+
+    override fun showRelativeInfo(bedRelativeVO: ArrayList<BedRelativeVO>) {
+
+    }
+
+    override fun showEvents(data: ArrayList<EventDO>) {
+
+    }
+
+    override fun setPartSettings(partSetting: PartSettingDO) {
+
+    }
+
+    override fun loadRoles(roles: List<RoleDO>) {
+
+    }
+
+    override fun showRoleData(data: InteractionVO) {
+
+    }
+
+    override fun onError(message: String, type: Int) {
+        showMessage(message)
+    }
+
+    override fun complete(message: String, type: Int) {
+    }
+
+    override fun start() {
+    }
+
+    override fun networkMonitor(state: NetState) {
+        state.filter(onWifi = {
+
+        }, onMobile = {
+
+        }, offline = {
+
+        })
+    }
+}

+ 83 - 0
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/fragment/DormReceptacleSetFragment.kt

@@ -0,0 +1,83 @@
+package com.wdkl.app.ncs.callingbed.fragment
+
+import com.enation.javashop.net.engine.model.NetState
+import com.wdkl.app.ncs.callingbed.R
+import com.wdkl.app.ncs.callingbed.databinding.FragmentDormReceptacleSetBinding
+import com.wdkl.app.ncs.callingbed.launch.CallingbedLaunch
+import com.wdkl.ncs.android.lib.base.BaseFragment
+import com.wdkl.ncs.android.lib.utils.showMessage
+import com.wdkl.ncs.android.lib.vo.filter
+import com.wdkl.ncs.android.middleware.logic.contract.callingbed.BedMomMianFragmentContract
+import com.wdkl.ncs.android.middleware.logic.presenter.callingbed.BedMomMianFragmentPresenter
+import com.wdkl.ncs.android.middleware.model.dos.EventDO
+import com.wdkl.ncs.android.middleware.model.dos.PartSettingDO
+import com.wdkl.ncs.android.middleware.model.dos.RoleDO
+import com.wdkl.ncs.android.middleware.model.vo.BedRelativeVO
+import com.wdkl.ncs.android.middleware.model.vo.CustomerInfoVO
+import com.wdkl.ncs.android.middleware.model.vo.InteractionVO
+
+class DormReceptacleSetFragment: BaseFragment<BedMomMianFragmentPresenter, FragmentDormReceptacleSetBinding>(), BedMomMianFragmentContract.View {
+
+    override fun getLayId(): Int {
+        return R.layout.fragment_dorm_receptacle_set
+    }
+
+    override fun bindDagger() {
+        CallingbedLaunch.component.inject(this)
+    }
+
+    override fun init() {
+        //todo
+    }
+
+    override fun bindEvent() {
+        //todo
+    }
+
+    override fun destory() {
+    }
+
+    override fun showCustomInfo(customInfo: CustomerInfoVO) {
+
+    }
+
+    override fun showRelativeInfo(bedRelativeVO: ArrayList<BedRelativeVO>) {
+
+    }
+
+    override fun showEvents(data: ArrayList<EventDO>) {
+
+    }
+
+    override fun setPartSettings(partSetting: PartSettingDO) {
+
+    }
+
+    override fun loadRoles(roles: List<RoleDO>) {
+
+    }
+
+    override fun showRoleData(data: InteractionVO) {
+
+    }
+
+    override fun onError(message: String, type: Int) {
+        showMessage(message)
+    }
+
+    override fun complete(message: String, type: Int) {
+    }
+
+    override fun start() {
+    }
+
+    override fun networkMonitor(state: NetState) {
+        state.filter(onWifi = {
+
+        }, onMobile = {
+
+        }, offline = {
+
+        })
+    }
+}

+ 111 - 0
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/fragment/DormSmartHomeFragment.kt

@@ -0,0 +1,111 @@
+package com.wdkl.app.ncs.callingbed.fragment
+
+import androidx.fragment.app.Fragment
+import com.enation.javashop.net.engine.model.NetState
+import com.wdkl.app.ncs.callingbed.R
+import com.wdkl.app.ncs.callingbed.databinding.FragmentSmartHomeBinding
+import com.wdkl.app.ncs.callingbed.launch.CallingbedLaunch
+import com.wdkl.ncs.android.lib.base.BaseFragment
+import com.wdkl.ncs.android.lib.utils.showMessage
+import com.wdkl.ncs.android.lib.vo.filter
+import com.wdkl.ncs.android.middleware.logic.contract.callingbed.BedMomMianFragmentContract
+import com.wdkl.ncs.android.middleware.logic.presenter.callingbed.BedMomMianFragmentPresenter
+import com.wdkl.ncs.android.middleware.model.dos.EventDO
+import com.wdkl.ncs.android.middleware.model.dos.PartSettingDO
+import com.wdkl.ncs.android.middleware.model.dos.RoleDO
+import com.wdkl.ncs.android.middleware.model.vo.BedRelativeVO
+import com.wdkl.ncs.android.middleware.model.vo.CustomerInfoVO
+import com.wdkl.ncs.android.middleware.model.vo.InteractionVO
+import kotlinx.android.synthetic.main.fragment_smart_home.*
+
+class DormSmartHomeFragment: BaseFragment<BedMomMianFragmentPresenter, FragmentSmartHomeBinding>(), BedMomMianFragmentContract.View {
+    val TAG = "DormSmartHomeFragment"
+
+    override fun getLayId(): Int {
+        return R.layout.fragment_smart_home
+    }
+
+    override fun bindDagger() {
+        CallingbedLaunch.component.inject(this)
+    }
+
+    override fun init() {
+
+    }
+
+    override fun bindEvent() {
+        smart_home_group.setOnCheckedChangeListener { group, checkedId ->
+            when (checkedId) {
+                R.id.radio_btn_light -> {
+                    //灯光
+                    switchChildFragment(DormLightSetFragment())
+                }
+
+                R.id.radio_btn_receptacle -> {
+                    //插座
+                    switchChildFragment(DormReceptacleSetFragment())
+                }
+
+                R.id.radio_btn_curtain -> {
+                    //窗帘
+                }
+            }
+        }
+
+        //默认显示灯光页面
+        radio_btn_light.isChecked = true
+    }
+
+    private fun switchChildFragment(fragment: Fragment) {
+        val transaction = childFragmentManager.beginTransaction()
+        transaction.replace(R.id.smart_home_frame, fragment)
+        transaction.commitAllowingStateLoss()
+    }
+
+    override fun destory() {
+    }
+
+    override fun showCustomInfo(customInfo: CustomerInfoVO) {
+
+    }
+
+    override fun showRelativeInfo(bedRelativeVO: ArrayList<BedRelativeVO>) {
+
+    }
+
+    override fun showEvents(data: ArrayList<EventDO>) {
+
+    }
+
+    override fun setPartSettings(partSetting: PartSettingDO) {
+
+    }
+
+    override fun loadRoles(roles: List<RoleDO>) {
+
+    }
+
+    override fun showRoleData(data: InteractionVO) {
+
+    }
+
+    override fun onError(message: String, type: Int) {
+        showMessage(message)
+    }
+
+    override fun complete(message: String, type: Int) {
+    }
+
+    override fun start() {
+    }
+
+    override fun networkMonitor(state: NetState) {
+        state.filter(onWifi = {
+
+        }, onMobile = {
+
+        }, offline = {
+
+        })
+    }
+}

+ 8 - 2
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/fragment/DromMianFragment.kt

@@ -31,7 +31,7 @@ import org.greenrobot.eventbus.ThreadMode
 /**
 /**
  * 宿舍首页
  * 宿舍首页
  * */
  * */
-class  DromMianFragment: BaseFragment<BedMomMianFragmentPresenter, MainView4LayoutBinding>(), BedMomMianFragmentContract.View {
+class DromMianFragment: BaseFragment<BedMomMianFragmentPresenter, MainView4LayoutBinding>(), BedMomMianFragmentContract.View {
     val TAG = "DromMianFragment"
     val TAG = "DromMianFragment"
 
 
     private var clickBtnTime: Long = 0
     private var clickBtnTime: Long = 0
@@ -53,7 +53,13 @@ class  DromMianFragment: BaseFragment<BedMomMianFragmentPresenter, MainView4Layo
     override fun bindEvent() {
     override fun bindEvent() {
         //智能家居
         //智能家居
         main_view4_1_ll.setOnClickListener {
         main_view4_1_ll.setOnClickListener {
-            showMessage("即将开放,敬请期待!")
+            val time = System.currentTimeMillis()
+            if (time - clickBtnTime > 3000) {
+                clickBtnTime = time
+                (activity as CallingbedDormitoryActivity).showSmartHomeFragment()
+            } else {
+                showMessage(R.string.wait_moment)
+            }
         }
         }
 
 
         //交互历史
         //交互历史

二進制
android_bed/src/main/res/drawable/ic_curtain.png


二進制
android_bed/src/main/res/drawable/ic_light.png


二進制
android_bed/src/main/res/drawable/ic_receptacle.png


+ 6 - 0
android_bed/src/main/res/drawable/selector_smart_home_bg.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@drawable/smart_home_btn_select_bg" android:state_checked="true"/>
+    <item android:drawable="@drawable/smart_home_btn_select_bg" android:state_pressed="true"/>
+    <item android:drawable="@drawable/smart_home_btn_select_bg2"/>
+</selector>

+ 8 - 0
android_bed/src/main/res/drawable/smart_home_btn_select_bg.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#ff6685ff"/>
+
+    <corners
+        android:radius="60dp" />
+
+</shape>

+ 8 - 0
android_bed/src/main/res/drawable/smart_home_btn_select_bg2.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#ff123bdc"/>
+
+    <corners
+        android:radius="60dp" />
+
+</shape>

+ 123 - 0
android_bed/src/main/res/layout/fragment_dorm_light_set.xml

@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_marginTop="10dp"
+        android:layout_marginBottom="10dp"
+        android:orientation="horizontal">
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:gravity="center_horizontal"
+            android:background="@drawable/shape_dorm_call_item_bg"
+            android:orientation="vertical">
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:src="@mipmap/d_light_img"/>
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="客厅灯光"
+                android:textColor="@color/white"
+                android:textSize="36sp"
+                android:textStyle="bold"/>
+
+            <TextView
+                android:id="@+id/tv_living_room_light"
+                android:layout_width="200dp"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="40dp"
+                android:background="@mipmap/d_btn_bg"
+                android:drawableLeft="@mipmap/d_light_off"
+                android:drawablePadding="@dimen/d10"
+                android:gravity="center_vertical"
+                android:paddingLeft="@dimen/d50"
+                android:text="关闭"
+                android:textColor="@color/white"
+                android:textSize="24sp" />
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:layout_marginLeft="20dp"
+            android:layout_marginRight="20dp"
+            android:gravity="center_horizontal"
+            android:background="@drawable/shape_dorm_call_item_bg"
+            android:orientation="vertical">
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:src="@mipmap/d_light_img"/>
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="卧室灯光"
+                android:textColor="@color/white"
+                android:textSize="36sp"
+                android:textStyle="bold"/>
+
+            <TextView
+                android:id="@+id/tv_bed_room_light"
+                android:layout_width="200dp"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="40dp"
+                android:background="@mipmap/d_btn_bg"
+                android:drawableLeft="@mipmap/d_light_on"
+                android:drawablePadding="@dimen/d10"
+                android:gravity="center_vertical"
+                android:paddingLeft="@dimen/d50"
+                android:text="开启"
+                android:textColor="@color/white"
+                android:textSize="24sp" />
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:gravity="center_horizontal"
+            android:background="@drawable/shape_dorm_call_item_bg"
+            android:orientation="vertical">
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:src="@mipmap/d_light_img"/>
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="厨房灯光"
+                android:textColor="@color/white"
+                android:textSize="36sp"
+                android:textStyle="bold"/>
+
+            <TextView
+                android:id="@+id/tv_kitchen_light"
+                android:layout_width="200dp"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="40dp"
+                android:background="@mipmap/d_btn_bg"
+                android:drawableLeft="@mipmap/d_light_on"
+                android:drawablePadding="@dimen/d10"
+                android:gravity="center_vertical"
+                android:paddingLeft="@dimen/d50"
+                android:text="开启"
+                android:textColor="@color/white"
+                android:textSize="24sp" />
+        </LinearLayout>
+    </LinearLayout>
+</layout>
+
+

+ 165 - 0
android_bed/src/main/res/layout/fragment_dorm_receptacle_set.xml

@@ -0,0 +1,165 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_marginTop="10dp"
+        android:layout_marginBottom="10dp"
+        android:orientation="horizontal">
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:gravity="center_horizontal"
+            android:background="@drawable/shape_dorm_call_item_bg"
+            android:orientation="vertical">
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="30dp"
+                android:src="@mipmap/d_receptacle_img"/>
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="30dp"
+                android:text="客厅插座"
+                android:textColor="@color/white"
+                android:textSize="36sp"
+                android:textStyle="bold"/>
+
+            <TextView
+                android:layout_width="200dp"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="30dp"
+                android:background="@mipmap/d_btn_bg"
+                android:drawableLeft="@mipmap/d_light_off"
+                android:drawablePadding="@dimen/d10"
+                android:gravity="center_vertical"
+                android:paddingLeft="@dimen/d50"
+                android:text="关闭"
+                android:textColor="@color/white"
+                android:textSize="24sp" />
+
+            <TextView
+                android:layout_width="200dp"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="30dp"
+                android:background="@mipmap/d_btn_bg"
+                android:drawableLeft="@mipmap/d_timer"
+                android:drawablePadding="@dimen/d10"
+                android:gravity="center_vertical"
+                android:paddingLeft="@dimen/d50"
+                android:text="定时"
+                android:textColor="@color/white"
+                android:textSize="24sp" />
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:layout_marginLeft="20dp"
+            android:layout_marginRight="20dp"
+            android:gravity="center_horizontal"
+            android:background="@drawable/shape_dorm_call_item_bg"
+            android:orientation="vertical">
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="30dp"
+                android:src="@mipmap/d_receptacle_img"/>
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="30dp"
+                android:text="卧室插座"
+                android:textColor="@color/white"
+                android:textSize="36sp"
+                android:textStyle="bold"/>
+
+            <TextView
+                android:layout_width="200dp"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="30dp"
+                android:background="@mipmap/d_btn_bg"
+                android:drawableLeft="@mipmap/d_light_on"
+                android:drawablePadding="@dimen/d10"
+                android:gravity="center_vertical"
+                android:paddingLeft="@dimen/d50"
+                android:text="开启"
+                android:textColor="@color/white"
+                android:textSize="24sp" />
+
+            <TextView
+                android:layout_width="200dp"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="30dp"
+                android:background="@mipmap/d_btn_bg"
+                android:drawableLeft="@mipmap/d_timer"
+                android:drawablePadding="@dimen/d10"
+                android:gravity="center_vertical"
+                android:paddingLeft="@dimen/d50"
+                android:text="定时"
+                android:textColor="@color/white"
+                android:textSize="24sp" />
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:gravity="center_horizontal"
+            android:background="@drawable/shape_dorm_call_item_bg"
+            android:orientation="vertical">
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="30dp"
+                android:src="@mipmap/d_receptacle_img"/>
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="30dp"
+                android:text="房间插座"
+                android:textColor="@color/white"
+                android:textSize="36sp"
+                android:textStyle="bold"/>
+
+            <TextView
+                android:layout_width="200dp"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="30dp"
+                android:background="@mipmap/d_btn_bg"
+                android:drawableLeft="@mipmap/d_light_on"
+                android:drawablePadding="@dimen/d10"
+                android:gravity="center_vertical"
+                android:paddingLeft="@dimen/d50"
+                android:text="开启"
+                android:textColor="@color/white"
+                android:textSize="24sp" />
+
+            <TextView
+                android:layout_width="200dp"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="30dp"
+                android:background="@mipmap/d_btn_bg"
+                android:drawableLeft="@mipmap/d_timer"
+                android:drawablePadding="@dimen/d10"
+                android:gravity="center_vertical"
+                android:paddingLeft="@dimen/d50"
+                android:text="定时"
+                android:textColor="@color/white"
+                android:textSize="24sp" />
+        </LinearLayout>
+    </LinearLayout>
+</layout>
+
+

+ 74 - 0
android_bed/src/main/res/layout/fragment_smart_home.xml

@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="vertical"
+        android:paddingLeft="@dimen/d20"
+        android:paddingRight="@dimen/d20">
+
+        <RadioGroup
+            android:id="@+id/smart_home_group"
+            android:layout_width="match_parent"
+            android:layout_height="80dp"
+            android:orientation="horizontal">
+
+            <com.wdkl.ncs.android.lib.widget.CustomRadioButton
+                android:id="@+id/radio_btn_light"
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:layout_weight="1"
+                android:button="@null"
+                android:drawableLeft="@drawable/ic_light"
+                android:drawablePadding="20dp"
+                android:gravity="center"
+                android:background="@drawable/selector_smart_home_bg"
+                android:text="灯光"
+                android:textColor="@color/white"
+                android:textSize="28sp"
+                android:textStyle="bold"/>
+
+            <com.wdkl.ncs.android.lib.widget.CustomRadioButton
+                android:id="@+id/radio_btn_receptacle"
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:layout_weight="1"
+                android:layout_marginLeft="20dp"
+                android:layout_marginRight="20dp"
+                android:button="@null"
+                android:drawableLeft="@drawable/ic_receptacle"
+                android:drawablePadding="20dp"
+                android:gravity="center"
+                android:background="@drawable/selector_smart_home_bg"
+                android:text="插座"
+                android:textColor="@color/white"
+                android:textSize="28sp"
+                android:textStyle="bold"/>
+
+            <com.wdkl.ncs.android.lib.widget.CustomRadioButton
+                android:id="@+id/radio_btn_curtain"
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:layout_weight="1"
+                android:button="@null"
+                android:drawableLeft="@drawable/ic_curtain"
+                android:drawablePadding="20dp"
+                android:gravity="center"
+                android:background="@drawable/selector_smart_home_bg"
+                android:text="窗帘"
+                android:textColor="@color/white"
+                android:textSize="28sp"
+                android:textStyle="bold"/>
+        </RadioGroup>
+
+        <FrameLayout
+            android:id="@+id/smart_home_frame"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_marginTop="20dp"
+            android:layout_marginBottom="20dp"/>
+    </LinearLayout>
+</layout>
+
+

二進制
android_bed/src/main/res/mipmap-hdpi/d_btn_bg.png


二進制
android_bed/src/main/res/mipmap-hdpi/d_light_img.png


二進制
android_bed/src/main/res/mipmap-hdpi/d_light_off.png


二進制
android_bed/src/main/res/mipmap-hdpi/d_light_on.png


二進制
android_bed/src/main/res/mipmap-hdpi/d_receptacle_img.png


二進制
android_bed/src/main/res/mipmap-hdpi/d_timer.png