设置UI优化及支付宝优化
authorp15692025051 <846603105@qq.com>
Sun, 23 Apr 2023 09:36:54 +0000 (17:36 +0800)
committerp15692025051 <846603105@qq.com>
Sun, 23 Apr 2023 09:36:54 +0000 (17:36 +0800)
3.code/1.watch/2.code/appAlipay.py
3.code/1.watch/2.code/main_1.py
3.code/1.watch/2.code/ui.py
3.code/1.watch/2.code/ui_setting.py

index 57db3f5..6c68a5d 100644 (file)
@@ -51,33 +51,45 @@ class Alipay(Abstract):
         self.vendor = "ZHSX"
         self.product_name = "ZHSX"
         self. product_model = modem.getDevModel()
-        self.pk_alipay = "uHTfYqOlGlA"
-        self.pk_aliyun = "a15PcyZ3IHA"
-        self.ps_aliyun = "kOGGPhtXAg1Lz1vg"
+        self.pk_alipay = "voPuTFiLcdA"
+        self.pk_aliyun = "a1c7Ojs6HMR"
+        self.ps_aliyun = "TxPFIJ5F1kwa0zO3"
         self.product_type = 0
         self.timer_Alipay = osTimer()
-        self.timer_Alipay_check = osTimer()
         self.alipay = None
         self.is_simcard_identify = 255
         self.is_init = 255
         self.upay_bound = 0 #绑定结果
-    def post_processor_after_instantiation(self):
-        print("post_processor_after_instantiation")
-        self.timer_Alipay.start(20000, 1, self.timeout_Alipay)
-        
-        
         self.alipay = ALIPAY(self.imei, self.iccid,self.imsi, self.mac, self.sn,self.vendor, self.product_name, self. product_model, self.pk_alipay , self.pk_aliyun, self.ps_aliyun,0)
         #self.alipay = ALIPAY("867387060319491", "898604293619F0549750","460044917509047", "123456", "P1Q22I80C0007530P","ZHIHUISHIXUN", "ZHIHUISHIXUN", "EC800M", "uHTfYqOlGlA" , "a15PcyZ3IHA", "kOGGPhtXAg1Lz1vg",0)
         self.alipay.register_print()
         self.alipay.set_log_limit(0)
+        self.timer_Alipay.start(10000, 1, self.timeout_Alipay)
+    def post_processor_after_instantiation(self):
+        
         EventMesh.subscribe("alipay_1", self.alipay_1)
         EventMesh.subscribe("get_payment_code", self.get_payment_code)
         EventMesh.subscribe("get_collect_code", self.get_collect_code)
         EventMesh.subscribe("get_parent_code", self.get_parent_code)
+        EventMesh.subscribe("get_alipay_init", self.get_alipay_init)
+        if self.is_init != 0:
+            id2_st = bytearray([0])
+            id2_ret = self.alipay.id2_init()
+            print("id2_ret:%d"%id2_ret)
+            self.alipay.id2_check_status(id2_st)
+            print("id2_st:",str(id2_st))
+            
+            self.is_init = self.alipay.pay_init(90000, 90000,\
+                                                2000, 2000, \
+                                                200, 40*1024, \
+                                                self.upay_display_notify_cb, 0) 
+            #alipay.pay_init(90000, 90000,2000, 2000,200, 40*1024,upay_display_notify_cb, 0)                                    
+            print("self.is_pay_init:%d\n\n\n"%self.is_init)
          
     def timeout_Alipay(self, *args, **kwargs):
-        #print("timeout_Alipay1:{}".format(EventMesh.publish(constants.EVENT.GET_CONNECT)))
+        #print("timeout_Alipay1:counect:{} init:{}".format(EventMesh.publish(constants.EVENT.GET_CONNECT),self.is_init))
         time = utime.localtime()
+        
 
         if EventMesh.publish(constants.EVENT.GET_CONNECT) == 1 and self.alipay != None and (self.is_simcard_identify != 0 or time[3] == 0 or time[3] == 12):
         #if self.alipay != None and (self.is_simcard_identify != 0 or time[3] == 0 or time[3] == 12):
@@ -88,17 +100,16 @@ class Alipay(Abstract):
         if self.is_init != 0:
             id2_st = bytearray([0])
             id2_ret = self.alipay.id2_init()
-            #print("id2_ret:%d"%id2_ret)
+            print("id2_ret:%d"%id2_ret)
             self.alipay.id2_check_status(id2_st)
-            #print("id2_st:",str(id2_st))
-            if id2_st[0] != 1:
-                return
+            print("id2_st:",str(id2_st))
+               
             self.is_init = self.alipay.pay_init(90000, 90000,\
                                                 2000, 2000, \
                                                 200, 40*1024, \
                                                 self.upay_display_notify_cb, 0) 
             #alipay.pay_init(90000, 90000,2000, 2000,200, 40*1024,upay_display_notify_cb, 0)                                    
-            print("self.is_pay_init:%d"%self.is_init)
+            print("self.is_pay_init:%d\n\n\n"%self.is_init)
             if self.is_init == 0 :
                 self.alipay.enable_collectioncode(1)
         
@@ -265,13 +276,11 @@ class Alipay(Abstract):
             userdata = ""
             ret = self.alipay.msg_send(8,args,userdata)
 
+    def get_alipay_init(self, event, msg):
+        return self.is_init
 
     def alipay_1(self, event, msg):
-        for i in range(5) :
-            if self.is_init == 0 :
-                utime.sleep(2)
-            else :
-                break 
+
         
         #本地判断是否绑定
         check_bind = self.alipay.check_bind_status()
@@ -316,33 +325,47 @@ class AlipayOpenScreen(Screen):
     #打开支付宝
     def __init__(self):
         super().__init__()
-        self.meta = lv.obj()
-        self.meta.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-        # add style for watchface
-        self.meta.add_style(style_alipay_screen_default, lv.PART.MAIN|lv.STATE.DEFAULT)
-
-        #进入图片
-        self.watchface_mpsignal_img = lv.img(self.meta)
-        self.watchface_mpsignal_img.set_pos(int(70),int(80))
-        self.watchface_mpsignal_img.set_size(100,100)
-        self.watchface_mpsignal_img.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-        self.watchface_mpsignal_img.add_flag(lv.obj.FLAG.CLICKABLE)
-        self.watchface_mpsignal_img.set_src("E:/static/APP/alipay/1.jpg")
-        self.watchface_mpsignal_img.add_style(style_alipay_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
+        self.meta = None
+        self.timer_alipay_open = osTimer()
 
     def initialization(self):
+        if self.meta == None :
+            self.meta = lv.obj()
+            self.meta.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+            # add style for watchface
+            self.meta.add_style(style_alipay_screen_default, lv.PART.MAIN|lv.STATE.DEFAULT)
+
+            #进入图片
+            self.watchface_mpsignal_img = lv.img(self.meta)
+            self.watchface_mpsignal_img.set_pos(int(70),int(80))
+            self.watchface_mpsignal_img.set_size(100,100)
+            self.watchface_mpsignal_img.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+            self.watchface_mpsignal_img.add_flag(lv.obj.FLAG.CLICKABLE)
+            self.watchface_mpsignal_img.set_src("E:/static/APP/alipay/1.jpg")
+            self.watchface_mpsignal_img.add_style(style_alipay_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
         
-        pass
    
     def post_processor_after_initialization(self):
         print("----init----")
-        EventMesh.publish("alipay_1")
-        pass
+        self.timer_alipay_open.start(1000, 1, self.timeout_alipay_open)
+        # for i in range(120):
+        #     if EventMesh.publish("get_alipay_init") == 1:
+        #         
+        #         break 
+        #     utime.sleep_ms(500)
+        
+    def timeout_alipay_open(self, *args, **kwargs):
+        if EventMesh.publish("get_alipay_init") == 0:
+            EventMesh.publish("alipay_1")
+            self.timer_alipay_open.stop()
+
     def done_return(self):
         EventMesh.publish("load_screen", {"screen": "main_menu"})
 
     def Close(self):
-        pass
+        self.timer_alipay_open.stop()
+        self.meta.delete()
+        self.meta = None
         
     def btn1_release(self):
         EventMesh.publish("load_screen", {"screen": "main_menu"})
@@ -355,56 +378,57 @@ class Alipay_1_1(Screen):
     #已绑定,显示功能列表
     def __init__(self):
         super().__init__()
-        self.meta = lv.obj()
-        self.meta.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-        # add style for watchface
-        self.meta.add_style(style_alipay_screen_default, lv.PART.MAIN|lv.STATE.DEFAULT)
-
-        #付款码
-        self.alipay_imgbtn_3 = lv.img(self.meta)
-        self.alipay_imgbtn_3.set_pos(8,10)
-        self.alipay_imgbtn_3.set_size(224,69)
-        self.alipay_imgbtn_3.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-        self.alipay_imgbtn_3.add_flag(lv.obj.FLAG.CLICKABLE)
-        self.alipay_imgbtn_3.set_src("E:/static/APP/alipay/1_13.png")
-        self.alipay_imgbtn_3.add_style(style_alipay_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
-        self.alipay_imgbtn_3.add_event_cb(lambda e: self.alipay_paycode(e),
-                                     lv.EVENT.PRESSED, None)
-
-
-        #收钱
-        self.alipay_imgbtn_2 = lv.img(self.meta)
-        self.alipay_imgbtn_2.set_pos(8,86)
-        self.alipay_imgbtn_2.set_size(224,69)
-        self.alipay_imgbtn_2.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-        self.alipay_imgbtn_2.add_flag(lv.obj.FLAG.CLICKABLE)
-        self.alipay_imgbtn_2.set_src("E:/static/APP/alipay/1_12.png")
-        self.alipay_imgbtn_2.add_style(style_alipay_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
-        self.alipay_imgbtn_2.add_event_cb(lambda e: self.alipay_collect(e),
-                                     lv.EVENT.PRESSED, None)
-        
-
-        #家长设置
-        self.alipay_imgbtn_1 = lv.img(self.meta)
-        self.alipay_imgbtn_1.set_pos(8,168)
-        self.alipay_imgbtn_1.set_size(224,69)
-        self.alipay_imgbtn_1.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-        self.alipay_imgbtn_1.add_flag(lv.obj.FLAG.CLICKABLE)
-        self.alipay_imgbtn_1.set_src("E:/static/APP/alipay/1_11.png")
-        self.alipay_imgbtn_1.add_style(style_alipay_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
-        self.alipay_imgbtn_1.add_event_cb(lambda e: self.alipay_parent(e),
-                                     lv.EVENT.PRESSED, None)
+        self.meta = None
        
 
-    
     def initialization(self):
-        pass
+        if self.meta == None : 
+            self.meta = lv.obj()
+            self.meta.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+            # add style for watchface
+            self.meta.add_style(style_alipay_screen_default, lv.PART.MAIN|lv.STATE.DEFAULT)
+
+            #付款码
+            self.alipay_imgbtn_3 = lv.img(self.meta)
+            self.alipay_imgbtn_3.set_pos(8,10)
+            self.alipay_imgbtn_3.set_size(224,69)
+            self.alipay_imgbtn_3.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+            self.alipay_imgbtn_3.add_flag(lv.obj.FLAG.CLICKABLE)
+            self.alipay_imgbtn_3.set_src("E:/static/APP/alipay/1_13.png")
+            self.alipay_imgbtn_3.add_style(style_alipay_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
+            self.alipay_imgbtn_3.add_event_cb(lambda e: self.alipay_paycode(e),
+                                        lv.EVENT.PRESSED, None)
+
+
+            #收钱
+            self.alipay_imgbtn_2 = lv.img(self.meta)
+            self.alipay_imgbtn_2.set_pos(8,86)
+            self.alipay_imgbtn_2.set_size(224,69)
+            self.alipay_imgbtn_2.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+            self.alipay_imgbtn_2.add_flag(lv.obj.FLAG.CLICKABLE)
+            self.alipay_imgbtn_2.set_src("E:/static/APP/alipay/1_12.png")
+            self.alipay_imgbtn_2.add_style(style_alipay_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
+            self.alipay_imgbtn_2.add_event_cb(lambda e: self.alipay_collect(e),
+                                        lv.EVENT.PRESSED, None)
+            
+
+            #家长设置
+            self.alipay_imgbtn_1 = lv.img(self.meta)
+            self.alipay_imgbtn_1.set_pos(8,168)
+            self.alipay_imgbtn_1.set_size(224,69)
+            self.alipay_imgbtn_1.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+            self.alipay_imgbtn_1.add_flag(lv.obj.FLAG.CLICKABLE)
+            self.alipay_imgbtn_1.set_src("E:/static/APP/alipay/1_11.png")
+            self.alipay_imgbtn_1.add_style(style_alipay_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
+            self.alipay_imgbtn_1.add_event_cb(lambda e: self.alipay_parent(e),
+                                        lv.EVENT.PRESSED, None)
    
     def post_processor_after_initialization(self):
         pass
     
     def Close(self):
-        pass
+        self.meta.delete()
+        self.meta = None
         
     def alipay_paycode(self,e):
         # Alipay.alipay.msg_send(3,"","") #发送获取付款码消息
@@ -432,41 +456,42 @@ class Alipay_invite(Screen):
     #未绑定,获取二维码显示
     def __init__(self):
         super().__init__()
-        self.meta = lv.obj()
-        self.meta.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-        # add style for watchface
-        self.meta.add_style(style_alipay_screen_default, lv.PART.MAIN|lv.STATE.DEFAULT)
-
-        #背景
-        self.bg = lv.img(self.meta)
-        self.bg.center()
-        self.bg.set_size(240,240)
-        self.bg.set_src("E:/static/APP/alipay/1_2.jpg")
-        self.bg.add_style(style_alipay_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
-
-        #提示词
-        self.label = lv.label(self.bg)
-        self.label.set_pos(6, 8)
-        self.label.set_size(228, 48)
-        self.label.set_long_mode(lv.label.LONG.WRAP)
-        self.label.set_text("请家长用手机支付宝扫一扫")
-        self.label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-        self.label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-        #二维码
-        self.bg_color = lv.palette_lighten(lv.PALETTE.LIGHT_BLUE, 5)
-        self.fg_color = lv.palette_darken(lv.PALETTE.BLUE, 4)
-
-        self.alipay_qr = lv.qrcode(self.bg, 150, self.fg_color, self.bg_color)
-        self.alipay_qr.set_pos(41,67)
-        # Add a border with bg_color
-        self.alipay_qr.set_style_border_color(self.bg_color, 0)
-        self.alipay_qr.set_style_border_width(5, 0)
+        self.meta = None
         
 
                 
     def initialization(self):
-        pass
+        if self.meta == None:    
+            self.meta = lv.obj()
+            self.meta.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+            # add style for watchface
+            self.meta.add_style(style_alipay_screen_default, lv.PART.MAIN|lv.STATE.DEFAULT)
+
+            #背景
+            self.bg = lv.img(self.meta)
+            self.bg.center()
+            self.bg.set_size(240,240)
+            self.bg.set_src("E:/static/APP/alipay/1_2.jpg")
+            self.bg.add_style(style_alipay_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
+
+            #提示词
+            self.label = lv.label(self.bg)
+            self.label.set_pos(6, 8)
+            self.label.set_size(228, 48)
+            self.label.set_long_mode(lv.label.LONG.WRAP)
+            self.label.set_text("请家长用手机支付宝扫一扫")
+            self.label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            self.label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            #二维码
+            self.bg_color = lv.palette_lighten(lv.PALETTE.LIGHT_BLUE, 5)
+            self.fg_color = lv.palette_darken(lv.PALETTE.BLUE, 4)
+
+            self.alipay_qr = lv.qrcode(self.bg, 150, self.fg_color, self.bg_color)
+            self.alipay_qr.set_pos(41,67)
+            # Add a border with bg_color
+            self.alipay_qr.set_style_border_color(self.bg_color, 0)
+            self.alipay_qr.set_style_border_width(5, 0)
    
     def post_processor_after_initialization(self):
         # 二维码数据
@@ -476,8 +501,12 @@ class Alipay_invite(Screen):
 
     
     def Close(self):
-        pass
-               
+        self.meta.delete()
+        self.meta = None
+
+    def done_return(self):
+        EventMesh.publish("load_screen", {"screen": "main_menu"})
+
     def btn1_release(self):
         EventMesh.publish("load_screen", {"screen": "main_menu"})
 
@@ -489,30 +518,34 @@ class Alipay_inviting(Screen):
 
     def __init__(self):
         super().__init__()
-        self.meta = lv.obj()
-        self.meta.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-        # add style for watchface
-        self.meta.add_style(style_alipay_screen_default, lv.PART.MAIN|lv.STATE.DEFAULT)
-
-        #提示词
-        self.label = lv.label(self.meta)
-        self.label.set_pos(30, 158)
-        self.label.set_size(180, 24)
-        self.label.set_long_mode(lv.label.LONG.WRAP)
-        self.label.set_text("绑定中,不要走开")
-        self.label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-        self.label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+        self.meta = None
 
    
     def initialization(self):
-        pass
+        if self.meta == None :
+            self.meta = lv.obj()
+            self.meta.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+            # add style for watchface
+            self.meta.add_style(style_alipay_screen_default, lv.PART.MAIN|lv.STATE.DEFAULT)
+
+            #提示词
+            self.label = lv.label(self.meta)
+            self.label.set_pos(30, 158)
+            self.label.set_size(180, 24)
+            self.label.set_long_mode(lv.label.LONG.WRAP)
+            self.label.set_text("绑定中,不要走开")
+            self.label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            self.label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
    
     def post_processor_after_initialization(self):
         pass
     
     def Close(self):
-        pass
-                
+        self.meta.delete()
+        self.meta = None
+
+
+
     def btn1_release(self):
         EventMesh.publish("load_screen", {"screen": "main_menu"})
 
@@ -524,37 +557,39 @@ class Alipay_success(Screen):
 
     def __init__(self):
         super().__init__()
-        self.meta = lv.obj()
-        self.meta.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-        # add style for watchface
-        self.meta.add_style(style_alipay_screen_default, lv.PART.MAIN|lv.STATE.DEFAULT)
-
-        #背景
-        self.bg = lv.img(self.meta)
-        self.bg.set_pos(56,30)
-        self.bg.set_size(128,127)
-        self.bg.set_src("E:/static/APP/alipay/1_2_1.png")
-        self.bg.add_style(style_alipay_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
-
-        #提示词
-        self.label = lv.label(self.meta)
-        self.label.set_pos(68, 168)
-        self.label.set_size(104, 29)
-        self.label.set_long_mode(lv.label.LONG.WRAP)
-        self.label.set_text("绑定成功")
-        self.label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-        self.label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+        self.meta = None
 
    
     def initialization(self):
-        pass
+        if self.meta == None:
+            self.meta = lv.obj()
+            self.meta.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+            # add style for watchface
+            self.meta.add_style(style_alipay_screen_default, lv.PART.MAIN|lv.STATE.DEFAULT)
+
+            #背景
+            self.bg = lv.img(self.meta)
+            self.bg.set_pos(56,30)
+            self.bg.set_size(128,127)
+            self.bg.set_src("E:/static/APP/alipay/1_2_1.png")
+            self.bg.add_style(style_alipay_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
+
+            #提示词
+            self.label = lv.label(self.meta)
+            self.label.set_pos(68, 168)
+            self.label.set_size(104, 29)
+            self.label.set_long_mode(lv.label.LONG.WRAP)
+            self.label.set_text("绑定成功")
+            self.label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            self.label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
    
     def post_processor_after_initialization(self):
         pass
 
 
     def Close(self):
-        pass
+        self.meta.delete()
+        self.meta = None
                 
     def btn1_release(self):
         EventMesh.publish("load_screen", {"screen": "main_menu"})
@@ -567,77 +602,83 @@ class Alipay_paycode(Screen):
 
     def __init__(self):
         super().__init__()
-        self.meta = lv.obj()
-        self.meta.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-        # add style for watchface
-        self.meta.add_style(style_alipay_screen_default, lv.PART.MAIN|lv.STATE.DEFAULT)
-
-        self.alipay_paycode = lv.tileview(self.meta)
-        self.alipay_paycode.center()
-        self.alipay_paycode.set_size(240, 320)
-        self.alipay_paycode.add_style(style_alipay_screen_default, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-        # 1 - 条形码界面
-        self.alipay_barcode = self.alipay_paycode.add_tile(0, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
-
-        #椭圆背景
-        self.cont = lv.obj(self.alipay_barcode)
-        self.cont.set_size(240,220)
-        self.cont.set_pos(0,21)
-        self.cont.add_style(style_cont_alipay, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-
-        #提示词
-        self.label = lv.label(self.alipay_barcode)
-        self.label.set_pos(10, 33)
-        self.label.set_size(220, 24)
-        self.label.set_long_mode(lv.label.LONG.WRAP)
-        self.label.set_text("收银员扫一扫,完成付款")
-        self.label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-        self.label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-
-        #条形码
-        self.bg_color = lv.palette_lighten(lv.PALETTE.LIGHT_BLUE, 5)
-        self.fg_color = lv.palette_darken(lv.PALETTE.BLUE, 4)
-        self.alipay_bar = lv.qrcode(self.alipay_barcode, 150, self.fg_color, self.bg_color)
-        self.alipay_bar.set_pos(33,61)
-        self.alipay_bar.set_style_border_color(self.bg_color, 0)
-        self.alipay_bar.set_style_border_width(5, 0)
-
-        #编号
-
-        # 2 - 二维码界面
-        self.alipay_qrcode = self.alipay_paycode.add_tile(1, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
-
-        #白色背景
-
-        #提示词
-        self.label1 = lv.label(self.alipay_qrcode)
-        self.label1.set_pos(10, 33)
-        self.label1.set_size(220, 24)
-        self.label1.set_long_mode(lv.label.LONG.WRAP)
-        self.label1.set_text("收银员扫一扫,完成付款")
-        self.label1.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-        self.label1.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-
-        #二维码
-
-        self.alipay_qr = lv.qrcode(self.alipay_qrcode, 150, self.fg_color, self.bg_color)
-        self.alipay_qr.set_pos(33,61)
-        self.alipay_qr.set_style_border_color(self.bg_color, 0)
-        self.alipay_qr.set_style_border_width(5, 0)
+        self.meta = None
 
   
-    def post_processor_after_initialization(self):
+    def initialization(self):
+        if self.meta == None :
+            self.meta = lv.obj()
+            self.meta.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+            # add style for watchface
+            self.meta.add_style(style_alipay_screen_default, lv.PART.MAIN|lv.STATE.DEFAULT)
+
+            self.alipay_paycode = lv.tileview(self.meta)
+            self.alipay_paycode.center()
+            self.alipay_paycode.set_size(240, 320)
+            self.alipay_paycode.add_style(style_alipay_screen_default, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            # 1 - 条形码界面
+            self.alipay_barcode = self.alipay_paycode.add_tile(0, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
+
+            #椭圆背景
+            self.cont = lv.obj(self.alipay_barcode)
+            self.cont.set_size(240,220)
+            self.cont.set_pos(0,21)
+            self.cont.add_style(style_cont_alipay, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+
+            #提示词
+            self.label = lv.label(self.alipay_barcode)
+            self.label.set_pos(10, 33)
+            self.label.set_size(220, 24)
+            self.label.set_long_mode(lv.label.LONG.WRAP)
+            self.label.set_text("收银员扫一扫,完成付款")
+            self.label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            self.label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+
+            #条形码
+            self.bg_color = lv.palette_lighten(lv.PALETTE.LIGHT_BLUE, 5)
+            self.fg_color = lv.palette_darken(lv.PALETTE.BLUE, 4)
+            self.alipay_bar = lv.qrcode(self.alipay_barcode, 150, self.fg_color, self.bg_color)
+            self.alipay_bar.set_pos(33,61)
+            self.alipay_bar.set_style_border_color(self.bg_color, 0)
+            self.alipay_bar.set_style_border_width(5, 0)
+
+            #编号
+
+            # 2 - 二维码界面
+            self.alipay_qrcode = self.alipay_paycode.add_tile(1, 0,  lv.DIR.LEFT | lv.DIR.RIGHT)
+
+            #白色背景
+
+            #提示词
+            self.label1 = lv.label(self.alipay_qrcode)
+            self.label1.set_pos(10, 33)
+            self.label1.set_size(220, 24)
+            self.label1.set_long_mode(lv.label.LONG.WRAP)
+            self.label1.set_text("收银员扫一扫,完成付款")
+            self.label1.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            self.label1.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+
+            #二维码
+
+            self.alipay_qr = lv.qrcode(self.alipay_qrcode, 150, self.fg_color, self.bg_color)
+            self.alipay_qr.set_pos(33,61)
+            self.alipay_qr.set_style_border_color(self.bg_color, 0)
+            self.alipay_qr.set_style_border_width(5, 0)
+
+    def post_processor_after_initialization(self):        
         self.alipay_qr_data = str(self.meta_info)
         print("alipay_paycode:",str(self.meta_info))
         self.alipay_qr.update(self.alipay_qr_data,len(self.alipay_qr_data))
         self.alipay_bar.update(self.alipay_qr_data,len(self.alipay_qr_data))
     
     def Close(self):
-        pass
+        self.meta.delete()
+        self.meta = None
+
     def done_return(self):
         EventMesh.publish("load_screen", {"screen": "alipay_1_1"})
                 
@@ -652,50 +693,52 @@ class Alipay_pay_success(Screen):
 
     def __init__(self):
         super().__init__()
-        self.meta = lv.obj()
-        self.meta.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-        # add style for watchface
-        self.meta.add_style(style_alipay_screen_default, lv.PART.MAIN|lv.STATE.DEFAULT)
-
-        #支付成功LOGO
-        self.bg = lv.img(self.meta)
-        self.bg.center()
-        self.bg.set_size(240,240)
-        self.bg.set_src("E:/static/APP/alipay/1_13_1_1.png")
-        self.bg.add_style(style_alipay_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
-
-        #付款金额
-        self.label = lv.label(self.meta)
-        self.label.set_pos(78, 114)
-        self.label.set_size(84, 43)
-        self.label.set_long_mode(lv.label.LONG.WRAP)
-
-        self.label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-        self.label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-        #完成按钮
-        self.btn = lv.btn(self.meta)
-        self.btn.set_size(224,58)
-        self.btn.set_pos(8,174)
-        self.btn.remove_style_all()
-        self.btn.add_style(style_btn_alipay,0)
-
-        self.label_btn = lv.label(self.btn)
-        self.label_btn.set_text("支付完成")
-        self.label_btn.center()
-        self.label_btn.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+        self.meta = None
 
+    def initialization(self):
+        if self.meta == None :
+            self.meta = lv.obj()
+            self.meta.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+            # add style for watchface
+            self.meta.add_style(style_alipay_screen_default, lv.PART.MAIN|lv.STATE.DEFAULT)
+
+            #支付成功LOGO
+            self.bg = lv.img(self.meta)
+            self.bg.center()
+            self.bg.set_size(240,240)
+            self.bg.set_src("E:/static/APP/alipay/1_13_1_1.png")
+            self.bg.add_style(style_alipay_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
+
+            #付款金额
+            self.label = lv.label(self.meta)
+            self.label.set_pos(78, 114)
+            self.label.set_size(84, 43)
+            self.label.set_long_mode(lv.label.LONG.WRAP)
+
+            self.label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            self.label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            #完成按钮
+            self.btn = lv.btn(self.meta)
+            self.btn.set_size(224,58)
+            self.btn.set_pos(8,174)
+            self.btn.remove_style_all()
+            self.btn.add_style(style_btn_alipay,0)
+
+            self.label_btn = lv.label(self.btn)
+            self.label_btn.set_text("支付完成")
+            self.label_btn.center()
+            self.label_btn.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
 
     def post_processor_after_initialization(self):
         print("money:",str(self.meta_info))
         self.label.set_text(str(self.meta_info))
 
-   
-    def initialization(self):
-        pass
+
       
     def Close(self):
-        pass
+        self.meta.delete()
+        self.meta = None
                 
     def btn1_release(self):
         EventMesh.publish("load_screen", {"screen": "main_menu"})
@@ -708,33 +751,33 @@ class Alipay_collect(Screen):
 
     def __init__(self):
         super().__init__()
-        self.meta = lv.obj()
-        self.meta.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-        # add style for watchface
-        self.meta.add_style(style_alipay_screen_default, lv.PART.MAIN|lv.STATE.DEFAULT)
-
-        #二维码
-        self.bg_color = lv.palette_lighten(lv.PALETTE.LIGHT_BLUE, 5)
-        self.fg_color = lv.palette_darken(lv.PALETTE.BLUE, 4)
-
-        self.alipay_qr = lv.qrcode(self.meta, 150, self.fg_color, self.bg_color)
-        self.alipay_qr.set_pos(33,22)
-        # Add a border with bg_color
-        self.alipay_qr.set_style_border_color(self.bg_color, 0)
-        self.alipay_qr.set_style_border_width(5, 0)
-
-        #提示词
-        self.label = lv.label(self.meta)
-        self.label.set_pos(20, 204)
-        self.label.set_size(200, 24)
-        self.label.set_long_mode(lv.label.LONG.WRAP)
-        self.label.set_text("请对方使用支付宝扫码")
-        self.label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-        self.label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+        self.meta = None
 
-  
     def initialization(self):
-        pass
+        if self.meta == None:    
+            self.meta = lv.obj()
+            self.meta.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+            # add style for watchface
+            self.meta.add_style(style_alipay_screen_default, lv.PART.MAIN|lv.STATE.DEFAULT)
+
+            #二维码
+            self.bg_color = lv.palette_lighten(lv.PALETTE.LIGHT_BLUE, 5)
+            self.fg_color = lv.palette_darken(lv.PALETTE.BLUE, 4)
+
+            self.alipay_qr = lv.qrcode(self.meta, 150, self.fg_color, self.bg_color)
+            self.alipay_qr.set_pos(33,22)
+            # Add a border with bg_color
+            self.alipay_qr.set_style_border_color(self.bg_color, 0)
+            self.alipay_qr.set_style_border_width(5, 0)
+
+            #提示词
+            self.label = lv.label(self.meta)
+            self.label.set_pos(20, 204)
+            self.label.set_size(200, 24)
+            self.label.set_long_mode(lv.label.LONG.WRAP)
+            self.label.set_text("请对方使用支付宝扫码")
+            self.label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            self.label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
    
     def post_processor_after_initialization(self):
         self.alipay_qr_data = str(self.meta_info)
@@ -742,7 +785,8 @@ class Alipay_collect(Screen):
         self.alipay_qr.update(self.alipay_qr_data,len(self.alipay_qr_data))
     
     def Close(self):
-        pass
+        self.meta.delete()
+        self.meta = None
 
     def done_return(self):
         EventMesh.publish("load_screen", {"screen": "alipay_1_1"})
@@ -759,56 +803,57 @@ class Alipay_parent(Screen):
 
     def __init__(self):
         super().__init__()
-        self.meta = lv.obj()
-        self.meta.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-        # add style for watchface
-        self.meta.add_style(style_alipay_screen_default, lv.PART.MAIN|lv.STATE.DEFAULT)
-
-        #家长头像
-        self.bg = lv.img(self.meta)
-        self.bg.set_pos(8,12)
-        self.bg.set_size(81,81)
-        self.bg.set_src("E:/static/APP/alipay/1_11_1.png")
-        self.bg.add_style(style_alipay_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
-
-        #提示词
-        self.label = lv.label(self.meta)
-        self.label.set_pos(104, 12)
-        self.label.set_size(96, 29)
-        self.label.set_long_mode(lv.label.LONG.WRAP)
-        self.label.set_text("家长设置")
-        self.label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-        self.label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-        self.label1 = lv.label(self.meta)
-        self.label1.set_pos(100, 43)
-        self.label1.set_size(120, 29)
-        self.label1.set_long_mode(lv.label.LONG.WRAP)
-        self.label1.set_text("零花钱管理")
-        self.label1.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-        self.label1.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-        self.label2 = lv.label(self.meta)
-        self.label2.set_pos(100, 71)
-        self.label2.set_size(120, 29)
-        self.label2.set_long_mode(lv.label.LONG.WRAP)
-        self.label2.set_text("解绑退钱")
-        self.label2.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-        self.label2.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-        #家长码
-        self.bg_color = lv.palette_lighten(lv.PALETTE.LIGHT_BLUE, 5)
-        self.fg_color = lv.palette_darken(lv.PALETTE.BLUE, 4)
-
-        self.alipay_qr = lv.qrcode(self.meta, 150, self.fg_color, self.bg_color)
-        self.alipay_qr.set_pos(8,171)
-        # Add a border with bg_color
-        self.alipay_qr.set_style_border_color(self.bg_color, 0)
-        self.alipay_qr.set_style_border_width(5, 0)
+        self.meta = None
 
    
     def initialization(self):
-        pass
+        if self.meta == None :
+            self.meta = lv.obj()
+            self.meta.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+            # add style for watchface
+            self.meta.add_style(style_alipay_screen_default, lv.PART.MAIN|lv.STATE.DEFAULT)
+
+            #家长头像
+            self.bg = lv.img(self.meta)
+            self.bg.set_pos(8,12)
+            self.bg.set_size(81,81)
+            self.bg.set_src("E:/static/APP/alipay/1_11_1.png")
+            self.bg.add_style(style_alipay_img_default, lv.PART.MAIN|lv.STATE.DEFAULT)
+
+            #提示词
+            self.label = lv.label(self.meta)
+            self.label.set_pos(104, 12)
+            self.label.set_size(96, 29)
+            self.label.set_long_mode(lv.label.LONG.WRAP)
+            self.label.set_text("家长设置")
+            self.label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            self.label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.label1 = lv.label(self.meta)
+            self.label1.set_pos(100, 43)
+            self.label1.set_size(120, 29)
+            self.label1.set_long_mode(lv.label.LONG.WRAP)
+            self.label1.set_text("零花钱管理")
+            self.label1.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            self.label1.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.label2 = lv.label(self.meta)
+            self.label2.set_pos(100, 71)
+            self.label2.set_size(120, 29)
+            self.label2.set_long_mode(lv.label.LONG.WRAP)
+            self.label2.set_text("解绑退钱")
+            self.label2.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            self.label2.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            #家长码
+            self.bg_color = lv.palette_lighten(lv.PALETTE.LIGHT_BLUE, 5)
+            self.fg_color = lv.palette_darken(lv.PALETTE.BLUE, 4)
+
+            self.alipay_qr = lv.qrcode(self.meta, 150, self.fg_color, self.bg_color)
+            self.alipay_qr.set_pos(8,171)
+            # Add a border with bg_color
+            self.alipay_qr.set_style_border_color(self.bg_color, 0)
+            self.alipay_qr.set_style_border_width(5, 0)
    
     def post_processor_after_initialization(self):
         self.alipay_qr_data = str(self.meta_info)
@@ -816,7 +861,8 @@ class Alipay_parent(Screen):
         self.alipay_qr.update(self.alipay_qr_data,len(self.alipay_qr_data))
     
     def Close(self):
-        pass
+        self.meta.delete()
+        self.meta = None
                 
     def done_return(self):
         EventMesh.publish("load_screen", {"screen": "alipay_1_1"})
index 8b02cee..356ec54 100644 (file)
@@ -35,34 +35,43 @@ class watchApp(App):
 
 if __name__ == '__main__':
     import uos
+    import gc
     import ql_fs
+    import utime
     if ql_fs.path_exists("/ext") == False:
         ldev = uos.VfsLfs1(32, 32, 32, "ext_fs",0,3)
         uos.mount(ldev,'/ext')
     res = uos.statvfs("/ext")
     res = list(res)
     print('总ext空间:{} MB,剩余空间:{} MB'.format((((res[0] * res[2]) / 1024 / 1024)),((res[0] * res[3]) / 1024 / 1024)))
-
+    mem = gc.mem_free()
+    print('剩余内存RAM:{} KB'.format(mem / 1024))
+    print("init0:{}".format(utime.localtime()))
     from ext import EventMesh
     from ext.common import Abstract
     from ext.lcd import tp_cst816
     from ext.btn_device_ec800m import BtnDevice
     from ext.protocol import LK_ProtoCol,PING_ProtoCol,HEART_ProtoCol,OXYGEN_ProtoCol,OXYGEN_One_ProtoCol,HRSTART_ProtoCol,WT_ProtoCol,UD_ProtoCol,REMIND_ProtoCol, CR_ProtoCol,KA_ProtoCol,FIND_ProtoCol,POWEROFF_ProtoCol,ProtoColResolver,PHL_ProtoCol
     import ext.mgr as mgr
+    print("init1:{}".format(utime.localtime()))
     import ext.ui as _ui
+    print("init2:{}".format(utime.localtime()))
     from ext.mgr import ConfigStoreManager, LocationManager, SockManager,getVolumSizeManager, \
     NetManager,AddrBookManager,MsgdetailManager,PhoneCallingManager,getOldHrDataManager,getStorageDataManager,getBrightnessManager,getHrTimeManager
+    print("init3:{}".format(utime.localtime()))
     from ext.appAlipay import Alipay ,AlipayOpenScreen,Alipay_1_1,Alipay_invite,Alipay_inviting,\
     Alipay_success,Alipay_paycode,Alipay_pay_success,Alipay_collect,Alipay_parent
     # from ext.ui_WatchFaceScreen import WatchFaceScreen
+    print("init4:{}".format(utime.localtime()))
     from ext.alarm import ClkListScreen,ClockManager,NewEditClk,CLKTimeScreen,ClkPeriod,PopupAlarmScreen
     from ext.ui_main_menu import MainMenuScreen
     from ext.appWechat import WechatScreen,TK_ProtoCol,MESSAGE_ProtoCol,NewWechatPopupScreen
     import ext.ui_setting as _ui_setting
+    print("init5:{}".format(utime.localtime()))
     from ext.appFactoryMode import  FactoryModeLocationScreen,FactoryModeScreen 
     # from usr.test_sms import HRSTART_ProtoCol,getHrTimeManager,HEART_ProtoCol,OXYGEN_ProtoCol,OXYGEN_One_ProtoCol,getBrightnessManager,\
     # getStorageDataManager
-
+    print("init6:{}".format(utime.localtime()))
    #from usr.ui_wechat import WechatScreen,TK_ProtoCol
     btn_device = BtnDevice(tp_cst816)
     btn_device.start()
@@ -130,7 +139,7 @@ if __name__ == '__main__':
     ui.add_screen(NewWechatPopupScreen())
     # ui.add_screen(_ui.Setting3Screen())  
 
-
+    print("init7:{}".format(utime.localtime()))
     app = watchApp()
     app.set_ui(ui)
     app.append_manager(mgr.AlarmVolumeLevelManager()) \
@@ -180,6 +189,6 @@ if __name__ == '__main__':
     sm.add_support_resolver(pcr)
     app.append_manager(sm)
     app.start()
-
+    print("init8:{}".format(utime.localtime()))
     EventMesh.publish("load_screen", {"screen": "main_menu"})
 
index 7b639de..18a7aa2 100644 (file)
@@ -583,13 +583,6 @@ class Screen(Abstract):
         print("msg = {}".format(msg))
         EventMesh.publish("load_screen", msg)
     
-    def load_screen_anim(self, e, msg):
-        print("msg = {}".format(msg))
-        EventMesh.publish("load_screen_anim", msg)
-
-    def load_screen_animtop(self, e, msg):
-        print("msg = {}".format(msg))
-        EventMesh.publish("load_screen_animtop", msg)
 
     def load(self):
         pass
@@ -1692,7 +1685,7 @@ class HeartrateScreen(Screen):
         EventMesh.publish("load_screen", {"screen": "main_menu"})
 
     
-
+import gc
 class ToolboxScreen(Screen):
     NAME = "toolbox"
 
@@ -1712,7 +1705,10 @@ class ToolboxScreen(Screen):
         toolbox_sms_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "popup"}), lv.EVENT.CLICKED, None)
         toolbox_countdown_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "countdown"}), lv.EVENT.CLICKED, None)
         toolbox_stopwatch_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "stopwatch"}), lv.EVENT.CLICKED, None)
-
+    
+    # def post_processor_after_initialization(self):
+    #     mem = gc.mem_free()
+    #     print('剩余内存RAM:{} KB'.format(mem / 1024))
     def done_return(self):
         EventMesh.publish("load_screen", {"screen": "main_menu"})
 
@@ -3320,8 +3316,6 @@ class UI(object):
 
     def post_processor_after_instantiation(self):
         EventMesh.subscribe("load_screen", self.load_screen)
-        EventMesh.subscribe("load_screen_anim", self.load_screen_anim)
-        EventMesh.subscribe("load_screen_animtop", self.load_screen_animtop)
 
         EventMesh.subscribe("btn1_press", self.btn_press)
         EventMesh.subscribe("btn8_press", self.btn_press)
@@ -3506,57 +3500,6 @@ class UI(object):
                 self.lv.scr_load(self.screen.get_meta())
                 self.screen.post_processor_after_initialization()
 
-    def load_screen_anim(self, topic, msg):
-        print("msg={}".format(msg))
-        for scr in self.screen_list:
-            if scr.NAME == msg["screen"]:
-                # 每次屏幕切换开始息屏倒计时
-                self.__lcd_on()
-                if scr.NAME == 'main_menu':
-                    self.main_flag = 1
-                else :
-                    self.main_flag = 0
-
-                self.screen = scr
-                if self.screen_old != None :
-                    self.screen_old.Close() #先关闭上一次界面
-                self.screen_old = self.screen
-                if msg.get("meta"):
-                    self.screen.meta_info = msg.get("meta")
-                self.screen.post_processor_before_initialization()
-                self.screen.initialization()
-                
-                print("load_screen.load()")
-                print("**************")
-                self.screen.load()
-                self.lv.scr_load_anim(self.screen.get_meta(),lv.SCR_LOAD_ANIM.MOVE_BOTTOM,100,0,0)
-                self.screen.post_processor_after_initialization()
-    
-    def load_screen_animtop(self, topic, msg):
-        print("msg={}".format(msg))
-        for scr in self.screen_list:
-            if scr.NAME == msg["screen"]:
-                # 每次屏幕切换开始息屏倒计时
-                self.__lcd_on()
-                if scr.NAME == 'main_menu':
-                    self.main_flag = 1
-                else :
-                    self.main_flag = 0
-
-                self.screen = scr
-                if self.screen_old != None :
-                    self.screen_old.Close() #先关闭上一次界面
-                self.screen_old = self.screen
-                if msg.get("meta"):
-                    self.screen.meta_info = msg.get("meta")
-                self.screen.post_processor_before_initialization()
-                self.screen.initialization()
-                
-                print("load_screen.load()")
-                print("**************")
-                self.screen.load()
-                self.lv.scr_load_anim(self.screen.get_meta(),lv.SCR_LOAD_ANIM.MOVE_TOP,100,0,0)
-                self.screen.post_processor_after_initialization()
                 
                 
 
index 69ed403..57f65b1 100644 (file)
@@ -10,6 +10,7 @@ import audio
 from machine import Pin
 import ujson
 from ext.lcd import style_font_youyuan_40
+import utime
 # -------------------------------------------setting screen----------------------------------------------------------
 
 style_bar = lv.style_t() 
@@ -38,264 +39,275 @@ style_bar_indic.set_bg_grad_color(lv.color_make(0xff, 0x61, 0x3a))
 style_bar_indic.set_bg_grad_dir(lv.GRAD_DIR.VER)
 style_bar_indic.set_bg_opa(255)
 
-setting_cont_y = 0
-setting_screen = lv.obj()
-setting = lv.obj(setting_screen)
-setting.center()
-setting.set_size(240, 320)
-setting.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-setting_imei_img = lv.img(setting)
-setting_imei_img.set_pos(75, 10)
-setting_imei_img.set_size(90, 30)
-setting_imei_img.set_src("E:/static/setting/setting_text.png")
-setting_imei_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-# setting_title = lv.label(setting)
-# setting_title.set_pos(0, 10)
-# setting_title.set_size(240, 40)
-# setting_title.set_text("设置")
-# setting_title.set_long_mode(lv.label.LONG.WRAP)
-# setting_title.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-# setting_title.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-setting_cont = lv.obj(setting)
-setting_cont.set_pos(0, 50)
-setting_cont.set_size(240, 270)
-setting_cont_style = ContStyle()
-setting_cont.add_style(
-    setting_cont_style.style_cont(0, lv.color_make(0x00, 0x00, 0x00), lv.color_make(0x00, 0x00, 0x00), 255),
-    lv.PART.MAIN | lv.STATE.DEFAULT)
-
-# setting_language = lv.btn(setting_cont)
-# setting_language.set_pos(0, setting_cont_y)
-# setting_language.set_size(240, 54)
-# setting_language_label = lv.label(setting_language)
-# setting_language_label.set_text("语言设置")
-# setting_language.set_style_pad_all(0, lv.STATE.DEFAULT)
-# setting_language_label.align(lv.ALIGN.LEFT_MID, 70, 0)
-# setting_language_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT)
-# setting_language_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-# setting_language.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
-# setting_language_img = lv.img(setting_cont)
-# setting_language_img.set_pos(10, setting_cont_y)set_size(47, 47)
-# setting_language_img.set_size(232, 80)
-# setting_language_img.add_flag(lv.obj.FLAG.CLICKABLE)
-# setting_language_img.set_src("E:/static/menu_language.png")
-# setting_language_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-#setting_cont_y += 60
-
-setting_dialswitch = lv.btn(setting_cont)
-setting_dialswitch.set_pos(0, setting_cont_y)
-setting_dialswitch.set_size(0, 0)
-setting_dialswitch_label = lv.label(setting_dialswitch)
-setting_dialswitch_label.set_text("表盘切换")
-setting_dialswitch.set_style_pad_all(0, lv.STATE.DEFAULT)
-setting_dialswitch_label.align(lv.ALIGN.LEFT_MID, 70, 0)
-setting_dialswitch_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT)
-setting_dialswitch_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-setting_dialswitch.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
-setting_dialswitch_img = lv.img(setting_cont)
-setting_dialswitch_img.set_pos(0, setting_cont_y)
-setting_dialswitch_img.set_size(232, 80)
-setting_dialswitch_img.add_flag(lv.obj.FLAG.CLICKABLE)
-setting_dialswitch_img.set_src("E:/static/setting/menu_watch_switch.png")
-setting_dialswitch_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-setting_cont_y+=90
-
-
-# setting_themeswitch = lv.btn(setting_cont)
-# setting_themeswitch.set_pos(0, 120)
-# setting_themeswitch.set_size(240, 54)
-# setting_themeswitch_label = lv.label(setting_themeswitch)
-# setting_themeswitch_label.set_text("主题切换")
-# setting_themeswitch.set_style_pad_all(0, lv.STATE.DEFAULT)
-# setting_themeswitch_label.align(lv.ALIGN.LEFT_MID, 70, 0)
-# setting_themeswitch_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT)
-# setting_themeswitch_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-# setting_themeswitch.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
-# setting_themeswitch_img = lv.img(setting_cont)
-# setting_themeswitch_img.set_pos(10, 120)
-# setting_themeswitch_img.set_size(232, 80)
-# setting_themeswitch_img.add_flag(lv.obj.FLAG.CLICKABLE)
-# setting_themeswitch_img.set_src("E:/static/menu_theme_switch.png")
-# setting_themeswitch_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-#setting_cont_y+=60
-
-setting_imei = lv.btn(setting_cont)
-setting_imei.set_pos(0, setting_cont_y)
-setting_imei.set_size(0, 0)
-setting_imei_label = lv.label(setting_imei)
-setting_imei_label.set_text("设备IMEI号")
-setting_imei.set_style_pad_all(0, lv.STATE.DEFAULT)
-setting_imei_label.align(lv.ALIGN.LEFT_MID, 70, 0)
-setting_imei_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT)
-setting_imei_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-setting_imei.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
-setting_imei_img = lv.img(setting_cont)
-setting_imei_img.set_pos(0, setting_cont_y)
-setting_imei_img.set_size(232, 80)
-setting_imei_img.add_flag(lv.obj.FLAG.CLICKABLE)
-setting_imei_img.set_src("E:/static/setting/menu_imei_qrcode.png")
-setting_imei_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-setting_cont_y+=90
-
-setting_app = lv.btn(setting_cont)
-setting_app.set_pos(0, setting_cont_y)
-setting_app.set_size(0, 0)
-setting_app_label = lv.label(setting_app)
-setting_app_label.set_text("手机安装APP")
-setting_app.set_style_pad_all(0, lv.STATE.DEFAULT)
-setting_app_label.align(lv.ALIGN.LEFT_MID, 70, 0)
-setting_app_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT)
-setting_app_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-setting_app.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
-setting_app_img = lv.img(setting_cont)
-setting_app_img.set_pos(0, setting_cont_y)
-setting_app_img.set_size(232, 80)
-setting_app_img.add_flag(lv.obj.FLAG.CLICKABLE)
-setting_app_img.set_src("E:/static/setting/menu_app_qrcode.png")
-setting_app_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-setting_cont_y+=90
-
-setting_bright = lv.btn(setting_cont)
-setting_bright.set_pos(0, setting_cont_y)
-setting_bright.set_size(0, 0)
-setting_bright_label = lv.label(setting_bright)
-setting_bright_label.set_text("屏幕调节")
-setting_bright.set_style_pad_all(0, lv.STATE.DEFAULT)
-setting_bright_label.align(lv.ALIGN.LEFT_MID, 70, 0)
-setting_bright_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT)
-setting_bright_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-setting_bright.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
-setting_bright_img = lv.img(setting_cont)
-setting_bright_img.set_pos(0, setting_cont_y)
-setting_bright_img.set_size(232, 80)
-setting_bright_img.add_flag(lv.obj.FLAG.CLICKABLE)
-setting_bright_img.set_src("E:/static/setting/menu_bright.png")
-setting_bright_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-setting_cont_y+=90
-
-setting_volume = lv.btn(setting_cont)
-setting_volume.set_pos(0, setting_cont_y)
-setting_volume.set_size(0, 0)
-setting_volume_label = lv.label(setting_volume)
-setting_volume_label.set_text("铃声")
-setting_volume.set_style_pad_all(0, lv.STATE.DEFAULT)
-setting_volume_label.align(lv.ALIGN.LEFT_MID, 70, 0)
-setting_volume_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT)
-setting_volume_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-setting_volume.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
-setting_volume_img = lv.img(setting_cont)
-setting_volume_img.set_pos(0, setting_cont_y)
-setting_volume_img.set_size(232, 80)
-setting_volume_img.add_flag(lv.obj.FLAG.CLICKABLE)
-setting_volume_img.set_src("E:/static/setting/menu_volume.png")
-setting_volume_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-setting_cont_y+=90
-
-setting_restore = lv.btn(setting_cont)
-setting_restore.set_pos(0, setting_cont_y)
-setting_restore.set_size(0, 0)
-setting_restore_label = lv.label(setting_restore)
-setting_restore_label.set_text("恢复出厂设置")
-setting_restore.set_style_pad_all(0, lv.STATE.DEFAULT)
-setting_restore_label.align(lv.ALIGN.LEFT_MID, 70, 0)
-setting_restore_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT)
-setting_restore_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-setting_restore.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
-setting_restore_img = lv.img(setting_cont)
-setting_restore_img.set_pos(0, setting_cont_y)
-setting_restore_img.set_size(232, 80)
-setting_restore_img.add_flag(lv.obj.FLAG.CLICKABLE)
-setting_restore_img.set_src("E:/static/setting/menu_restore.png")
-setting_restore_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-setting_cont_y+=90
-
-setting_poweroff = lv.btn(setting_cont)
-setting_poweroff.set_pos(0, setting_cont_y)
-setting_poweroff.set_size(0, 0)
-setting_poweroff_label = lv.label(setting_poweroff)
-setting_poweroff_label.set_text("关机")
-setting_poweroff.set_style_pad_all(0, lv.STATE.DEFAULT)
-setting_poweroff_label.align(lv.ALIGN.LEFT_MID, 70, 0)
-setting_poweroff_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT)
-setting_poweroff_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-setting_poweroff.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
-setting_poweroff_img = lv.img(setting_cont)
-setting_poweroff_img.set_pos(0, setting_cont_y)
-setting_poweroff_img.set_size(232, 80)
-setting_poweroff_img.add_flag(lv.obj.FLAG.CLICKABLE)
-setting_poweroff_img.set_src("E:/static/setting/menu_poweroff.png")
-setting_poweroff_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-setting_cont_y+=90
-
-setting_version = lv.btn(setting_cont)
-setting_version.set_pos(0, setting_cont_y)
-setting_version.set_size(0, 0)
-setting_version_label = lv.label(setting_version)
-setting_version_label.set_text("关于设备")
-setting_version.set_style_pad_all(0, lv.STATE.DEFAULT)
-setting_version_label.align(lv.ALIGN.LEFT_MID, 70, 0)
-setting_version_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT)
-setting_version_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-setting_version.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
-setting_version_img = lv.img(setting_cont)
-setting_version_img.set_pos(0, setting_cont_y)
-setting_version_img.set_size(232, 80)
-setting_version_img.add_flag(lv.obj.FLAG.CLICKABLE)
-setting_version_img.set_src("E:/static/setting/menu_version.png")
-setting_version_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-setting_cont_y+=90
-
-setting_update = lv.btn(setting_cont)
-setting_update.set_pos(0, setting_cont_y)
-setting_update.set_size(0, 0)
-setting_update_label = lv.label(setting_update)
-setting_update_label.set_text("系统升级")
-setting_update.set_style_pad_all(0, lv.STATE.DEFAULT)
-setting_update_label.align(lv.ALIGN.LEFT_MID, 70, 0)
-setting_update_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT)
-setting_update_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-setting_update.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
-setting_update_img = lv.img(setting_cont)
-setting_update_img.set_pos(0, setting_cont_y)
-setting_update_img.set_size(232, 80)
-setting_update_img.add_flag(lv.obj.FLAG.CLICKABLE)
-setting_update_img.set_src("E:/static/setting/menu_upgrade.png")
-setting_update_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
 
+# import uos
+# import gc
 class SettingScreen(Screen):
     NAME = "setting"
 
     def __init__(self):
         super().__init__()
-        self.meta = setting_screen
-        # setting_language.add_event_cb(lambda e: self.load_screen(e, {"screen": "language"}), lv.EVENT.CLICKED, None)
-        setting_dialswitch.add_event_cb(lambda e: self.load_screen(e, {"screen": "dialswitch"}), lv.EVENT.CLICKED, None)
-        # setting_themeswitch.add_event_cb(lambda e: self.load_screen(e, {"screen": "themeswitch"}), lv.EVENT.CLICKED, None)
-        setting_imei.add_event_cb(lambda e: self.load_screen(e, {"screen": "imei"}), lv.EVENT.CLICKED, None)
-        setting_app.add_event_cb(lambda e: self.load_screen(e, {"screen": "app"}), lv.EVENT.CLICKED, None)
-        setting_bright.add_event_cb(lambda e: self.load_screen(e, {"screen": "brightness"}), lv.EVENT.CLICKED, None)
-        setting_volume.add_event_cb(lambda e: self.load_screen(e, {"screen": "totalvolume"}), lv.EVENT.CLICKED, None)
-        setting_restore.add_event_cb(lambda e: self.load_screen(e, {"screen": "restore"}), lv.EVENT.CLICKED, None)
-        setting_poweroff.add_event_cb(lambda e: self.load_screen(e, {"screen": "poweroff"}), lv.EVENT.CLICKED, None)
-        setting_update.add_event_cb(lambda e: self.load_screen(e, {"screen": "update"}), lv.EVENT.CLICKED, None)
-        setting_version.add_event_cb(lambda e: self.load_screen(e, {"screen": "version"}), lv.EVENT.CLICKED, None)
-
-        # img regist btton
-        # setting_language.add_event_cb(lambda e: self.load_screen(e, {"screen": "language"}), lv.EVENT.CLICKED, None)
-        setting_dialswitch_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "dialswitch"}), lv.EVENT.CLICKED, None)
-        # setting_themeswitch.add_event_cb(lambda e: self.load_screen(e, {"screen": "themeswitch"}), lv.EVENT.CLICKED, None)
-        setting_imei_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "imei"}), lv.EVENT.CLICKED, None)
-        setting_app_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "app"}), lv.EVENT.CLICKED, None)
-        setting_bright_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "brightness"}), lv.EVENT.CLICKED, None)
-        setting_volume_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "totalvolume"}), lv.EVENT.CLICKED, None)
-        setting_restore_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "restore"}), lv.EVENT.CLICKED, None)
-        setting_poweroff_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "poweroff"}), lv.EVENT.CLICKED, None)
-        setting_update_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "update"}), lv.EVENT.CLICKED, None)
-        setting_version_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "version"}), lv.EVENT.CLICKED, None)
+        self.meta = None
+        self.setting_cont_y = 0
 
-    
+    def initialization(self):
+        # mem = gc.mem_free()
+        # print('1剩余内存RAM:{} KB'.format(mem / 1024))
+        if self.meta == None :
+            print("SettingScreen :initialization")
+            self.setting_cont_y = 0
+            self.meta  = lv.obj()
+            self.setting = lv.obj(self.meta )
+            self.setting.center()
+            self.setting.set_size(240, 320)
+            self.setting.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.setting_imei_img = lv.img(self.setting)
+            self.setting_imei_img.set_pos(75, 10)
+            self.setting_imei_img.set_size(90, 30)
+            self.setting_imei_img.set_src("E:/static/setting/setting_text.png")
+            self.setting_imei_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+            # self.setting_title = lv.label(self.setting)
+            # self.setting_title.set_pos(0, 10)
+            # self.setting_title.set_size(240, 40)
+            # self.setting_title.set_text("设置")
+            # self.setting_title.set_long_mode(lv.label.LONG.WRAP)
+            # self.setting_title.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            # self.setting_title.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.setting_cont = lv.obj(self.setting)
+            self.setting_cont.set_pos(0, 50)
+            self.setting_cont.set_size(240, 270)
+            self.setting_cont_style = ContStyle()
+            self.setting_cont.add_style(
+                self.setting_cont_style.style_cont(0, lv.color_make(0x00, 0x00, 0x00), lv.color_make(0x00, 0x00, 0x00), 255),
+                lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            # self.setting_language = lv.btn(self.setting_cont)
+            # self.setting_language.set_pos(0, self.setting_cont_y)
+            # self.setting_language.set_size(240, 54)
+            # self.setting_language_label = lv.label(self.setting_language)
+            # self.setting_language_label.set_text("语言设置")
+            # self.setting_language.set_style_pad_all(0, lv.STATE.DEFAULT)
+            # self.setting_language_label.align(lv.ALIGN.LEFT_MID, 70, 0)
+            # self.setting_language_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT)
+            # self.setting_language_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+            # self.setting_language.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
+            # self.setting_language_img = lv.img(self.setting_cont)
+            # self.setting_language_img.set_pos(10, self.setting_cont_y)set_size(47, 47)
+            # self.setting_language_img.set_size(232, 80)
+            # self.setting_language_img.add_flag(lv.obj.FLAG.CLICKABLE)
+            # self.setting_language_img.set_src("E:/static/menu_language.png")
+            # self.setting_language_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+            #self.setting_cont_y += 60
+
+            self.setting_dialswitch = lv.btn(self.setting_cont)
+            self.setting_dialswitch.set_pos(0, self.setting_cont_y)
+            self.setting_dialswitch.set_size(0, 0)
+            self.setting_dialswitch_label = lv.label(self.setting_dialswitch)
+            self.setting_dialswitch_label.set_text("表盘切换")
+            self.setting_dialswitch.set_style_pad_all(0, lv.STATE.DEFAULT)
+            self.setting_dialswitch_label.align(lv.ALIGN.LEFT_MID, 70, 0)
+            self.setting_dialswitch_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT)
+            self.setting_dialswitch_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.setting_dialswitch.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.setting_dialswitch_img = lv.img(self.setting_cont)
+            self.setting_dialswitch_img.set_pos(0, self.setting_cont_y)
+            self.setting_dialswitch_img.set_size(232, 80)
+            self.setting_dialswitch_img.add_flag(lv.obj.FLAG.CLICKABLE)
+            self.setting_dialswitch_img.set_src("E:/static/setting/menu_watch_switch.png")
+            self.setting_dialswitch_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.setting_cont_y+=90
+
+
+            # self.setting_themeswitch = lv.btn(self.setting_cont)
+            # self.setting_themeswitch.set_pos(0, 120)
+            # self.setting_themeswitch.set_size(240, 54)
+            # self.setting_themeswitch_label = lv.label(self.setting_themeswitch)
+            # self.setting_themeswitch_label.set_text("主题切换")
+            # self.setting_themeswitch.set_style_pad_all(0, lv.STATE.DEFAULT)
+            # self.setting_themeswitch_label.align(lv.ALIGN.LEFT_MID, 70, 0)
+            # self.setting_themeswitch_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT)
+            # self.setting_themeswitch_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+            # self.setting_themeswitch.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
+            # self.setting_themeswitch_img = lv.img(self.setting_cont)
+            # self.setting_themeswitch_img.set_pos(10, 120)
+            # self.setting_themeswitch_img.set_size(232, 80)
+            # self.setting_themeswitch_img.add_flag(lv.obj.FLAG.CLICKABLE)
+            # self.setting_themeswitch_img.set_src("E:/static/menu_theme_switch.png")
+            # self.setting_themeswitch_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+            #self.setting_cont_y+=60
+
+            self.setting_imei = lv.btn(self.setting_cont)
+            self.setting_imei.set_pos(0, self.setting_cont_y)
+            self.setting_imei.set_size(0, 0)
+            self.setting_imei_label = lv.label(self.setting_imei)
+            self.setting_imei_label.set_text("设备IMEI号")
+            self.setting_imei.set_style_pad_all(0, lv.STATE.DEFAULT)
+            self.setting_imei_label.align(lv.ALIGN.LEFT_MID, 70, 0)
+            self.setting_imei_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT)
+            self.setting_imei_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.setting_imei.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.setting_imei_img = lv.img(self.setting_cont)
+            self.setting_imei_img.set_pos(0, self.setting_cont_y)
+            self.setting_imei_img.set_size(232, 80)
+            self.setting_imei_img.add_flag(lv.obj.FLAG.CLICKABLE)
+            self.setting_imei_img.set_src("E:/static/setting/menu_imei_qrcode.png")
+            self.setting_imei_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.setting_cont_y+=90
+
+            self.setting_app = lv.btn(self.setting_cont)
+            self.setting_app.set_pos(0, self.setting_cont_y)
+            self.setting_app.set_size(0, 0)
+            self.setting_app_label = lv.label(self.setting_app)
+            self.setting_app_label.set_text("手机安装APP")
+            self.setting_app.set_style_pad_all(0, lv.STATE.DEFAULT)
+            self.setting_app_label.align(lv.ALIGN.LEFT_MID, 70, 0)
+            self.setting_app_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT)
+            self.setting_app_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.setting_app.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.setting_app_img = lv.img(self.setting_cont)
+            self.setting_app_img.set_pos(0, self.setting_cont_y)
+            self.setting_app_img.set_size(232, 80)
+            self.setting_app_img.add_flag(lv.obj.FLAG.CLICKABLE)
+            self.setting_app_img.set_src("E:/static/setting/menu_app_qrcode.png")
+            self.setting_app_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.setting_cont_y+=90
+
+            self.setting_bright = lv.btn(self.setting_cont)
+            self.setting_bright.set_pos(0, self.setting_cont_y)
+            self.setting_bright.set_size(0, 0)
+            self.setting_bright_label = lv.label(self.setting_bright)
+            self.setting_bright_label.set_text("屏幕调节")
+            self.setting_bright.set_style_pad_all(0, lv.STATE.DEFAULT)
+            self.setting_bright_label.align(lv.ALIGN.LEFT_MID, 70, 0)
+            self.setting_bright_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT)
+            self.setting_bright_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.setting_bright.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.setting_bright_img = lv.img(self.setting_cont)
+            self.setting_bright_img.set_pos(0, self.setting_cont_y)
+            self.setting_bright_img.set_size(232, 80)
+            self.setting_bright_img.add_flag(lv.obj.FLAG.CLICKABLE)
+            self.setting_bright_img.set_src("E:/static/setting/menu_bright.png")
+            self.setting_bright_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.setting_cont_y+=90
+
+            self.setting_volume = lv.btn(self.setting_cont)
+            self.setting_volume.set_pos(0, self.setting_cont_y)
+            self.setting_volume.set_size(0, 0)
+            self.setting_volume_label = lv.label(self.setting_volume)
+            self.setting_volume_label.set_text("铃声")
+            self.setting_volume.set_style_pad_all(0, lv.STATE.DEFAULT)
+            self.setting_volume_label.align(lv.ALIGN.LEFT_MID, 70, 0)
+            self.setting_volume_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT)
+            self.setting_volume_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.setting_volume.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.setting_volume_img = lv.img(self.setting_cont)
+            self.setting_volume_img.set_pos(0, self.setting_cont_y)
+            self.setting_volume_img.set_size(232, 80)
+            self.setting_volume_img.add_flag(lv.obj.FLAG.CLICKABLE)
+            self.setting_volume_img.set_src("E:/static/setting/menu_volume.png")
+            self.setting_volume_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.setting_cont_y+=90
+
+            self.setting_restore = lv.btn(self.setting_cont)
+            self.setting_restore.set_pos(0, self.setting_cont_y)
+            self.setting_restore.set_size(0, 0)
+            self.setting_restore_label = lv.label(self.setting_restore)
+            self.setting_restore_label.set_text("恢复出厂设置")
+            self.setting_restore.set_style_pad_all(0, lv.STATE.DEFAULT)
+            self.setting_restore_label.align(lv.ALIGN.LEFT_MID, 70, 0)
+            self.setting_restore_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT)
+            self.setting_restore_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.setting_restore.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.setting_restore_img = lv.img(self.setting_cont)
+            self.setting_restore_img.set_pos(0, self.setting_cont_y)
+            self.setting_restore_img.set_size(232, 80)
+            self.setting_restore_img.add_flag(lv.obj.FLAG.CLICKABLE)
+            self.setting_restore_img.set_src("E:/static/setting/menu_restore.png")
+            self.setting_restore_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.setting_cont_y+=90
+
+            self.setting_poweroff = lv.btn(self.setting_cont)
+            self.setting_poweroff.set_pos(0, self.setting_cont_y)
+            self.setting_poweroff.set_size(0, 0)
+            self.setting_poweroff_label = lv.label(self.setting_poweroff)
+            self.setting_poweroff_label.set_text("关机")
+            self.setting_poweroff.set_style_pad_all(0, lv.STATE.DEFAULT)
+            self.setting_poweroff_label.align(lv.ALIGN.LEFT_MID, 70, 0)
+            self.setting_poweroff_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT)
+            self.setting_poweroff_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.setting_poweroff.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.setting_poweroff_img = lv.img(self.setting_cont)
+            self.setting_poweroff_img.set_pos(0, self.setting_cont_y)
+            self.setting_poweroff_img.set_size(232, 80)
+            self.setting_poweroff_img.add_flag(lv.obj.FLAG.CLICKABLE)
+            self.setting_poweroff_img.set_src("E:/static/setting/menu_poweroff.png")
+            self.setting_poweroff_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.setting_cont_y+=90
+
+            self.setting_version = lv.btn(self.setting_cont)
+            self.setting_version.set_pos(0, self.setting_cont_y)
+            self.setting_version.set_size(0, 0)
+            self.setting_version_label = lv.label(self.setting_version)
+            self.setting_version_label.set_text("关于设备")
+            self.setting_version.set_style_pad_all(0, lv.STATE.DEFAULT)
+            self.setting_version_label.align(lv.ALIGN.LEFT_MID, 70, 0)
+            self.setting_version_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT)
+            self.setting_version_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.setting_version.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.setting_version_img = lv.img(self.setting_cont)
+            self.setting_version_img.set_pos(0, self.setting_cont_y)
+            self.setting_version_img.set_size(232, 80)
+            self.setting_version_img.add_flag(lv.obj.FLAG.CLICKABLE)
+            self.setting_version_img.set_src("E:/static/setting/menu_version.png")
+            self.setting_version_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.setting_cont_y+=90
+
+            self.setting_update = lv.btn(self.setting_cont)
+            self.setting_update.set_pos(0, self.setting_cont_y)
+            self.setting_update.set_size(0, 0)
+            self.setting_update_label = lv.label(self.setting_update)
+            self.setting_update_label.set_text("系统升级")
+            self.setting_update.set_style_pad_all(0, lv.STATE.DEFAULT)
+            self.setting_update_label.align(lv.ALIGN.LEFT_MID, 70, 0)
+            self.setting_update_label.set_style_text_color(lv.color_make(0xff, 0xff, 0xff), lv.STATE.DEFAULT)
+            self.setting_update_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.setting_update.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.setting_update_img = lv.img(self.setting_cont)
+            self.setting_update_img.set_pos(0, self.setting_cont_y)
+            self.setting_update_img.set_size(232, 80)
+            self.setting_update_img.add_flag(lv.obj.FLAG.CLICKABLE)
+            self.setting_update_img.set_src("E:/static/setting/menu_upgrade.png")
+            self.setting_update_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+             # self.setting_language.add_event_cb(lambda e: self.load_screen(e, {"screen": "language"}), lv.EVENT.CLICKED, None)
+            self.setting_dialswitch.add_event_cb(lambda e: self.load_screen(e, {"screen": "dialswitch"}), lv.EVENT.CLICKED, None)
+            # self.setting_themeswitch.add_event_cb(lambda e: self.load_screen(e, {"screen": "themeswitch"}), lv.EVENT.CLICKED, None)
+            self.setting_imei.add_event_cb(lambda e: self.load_screen(e, {"screen": "imei"}), lv.EVENT.CLICKED, None)
+            self.setting_app.add_event_cb(lambda e: self.load_screen(e, {"screen": "app"}), lv.EVENT.CLICKED, None)
+            self.setting_bright.add_event_cb(lambda e: self.load_screen(e, {"screen": "brightness"}), lv.EVENT.CLICKED, None)
+            self.setting_volume.add_event_cb(lambda e: self.load_screen(e, {"screen": "totalvolume"}), lv.EVENT.CLICKED, None)
+            self.setting_restore.add_event_cb(lambda e: self.load_screen(e, {"screen": "restore"}), lv.EVENT.CLICKED, None)
+            self.setting_poweroff.add_event_cb(lambda e: self.load_screen(e, {"screen": "poweroff"}), lv.EVENT.CLICKED, None)
+            self.setting_update.add_event_cb(lambda e: self.load_screen(e, {"screen": "update"}), lv.EVENT.CLICKED, None)
+            self.setting_version.add_event_cb(lambda e: self.load_screen(e, {"screen": "version"}), lv.EVENT.CLICKED, None)
+
+            # img regist btton
+            # self.setting_language.add_event_cb(lambda e: self.load_screen(e, {"screen": "language"}), lv.EVENT.CLICKED, None)
+            self.setting_dialswitch_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "dialswitch"}), lv.EVENT.CLICKED, None)
+            # self.setting_themeswitch.add_event_cb(lambda e: self.load_screen(e, {"screen": "themeswitch"}), lv.EVENT.CLICKED, None)
+            self.setting_imei_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "imei"}), lv.EVENT.CLICKED, None)
+            self.setting_app_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "app"}), lv.EVENT.CLICKED, None)
+            self.setting_bright_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "brightness"}), lv.EVENT.CLICKED, None)
+            self.setting_volume_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "totalvolume"}), lv.EVENT.CLICKED, None)
+            self.setting_restore_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "restore"}), lv.EVENT.CLICKED, None)
+            self.setting_poweroff_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "poweroff"}), lv.EVENT.CLICKED, None)
+            self.setting_update_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "update"}), lv.EVENT.CLICKED, None)
+            self.setting_version_img.add_event_cb(lambda e: self.load_screen(e, {"screen": "version"}), lv.EVENT.CLICKED, None)
+    def Close(self):
+        self.meta.delete()
+        self.meta = None
 
     def done_return(self):
         EventMesh.publish("load_screen", {"screen": "main_menu"})
@@ -306,545 +318,67 @@ class SettingScreen(Screen):
     def btn8_press(self):
         EventMesh.publish("load_screen", {"screen": "main_menu"})
 ##################################################################
-# -------------------------------------------language screen----------------------------------------------------------
-language_screen = lv.obj()
-language = lv.obj(language_screen)
-language.center()
-language.set_size(240, 320)
-language.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-language_title = lv.label(language)
-language_title.set_pos(0, 10)
-language_title.set_size(240, 40)
-language_title.set_text("语言设置")
-language_title.set_long_mode(lv.label.LONG.WRAP)
-language_title.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-language_title.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-language_english_btn = lv.btn(language)
-language_english_btn.set_size(240,50)
-language_english_btn.set_pos(0, 60)
-language_english_btn.add_style(style_contact_btn, lv.PART.MAIN | lv.STATE.PRESSED)
-language_english_btn.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
-language_english_btn_label = lv.label(language_english_btn)
-language_english_btn_label.set_text("English")
-language_english_btn_label.align(lv.ALIGN.LEFT_MID, 10, 0)
-language_english_btn_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-language_chinese_btn = lv.btn(language)
-language_chinese_btn.set_size(240,50)
-language_chinese_btn.set_pos(0, 120)
-language_chinese_btn.add_style(style_contact_btn, lv.PART.MAIN | lv.STATE.PRESSED)
-language_chinese_btn.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
-language_chinese_btn_label = lv.label(language_chinese_btn)
-language_chinese_btn_label.set_text("简体中文")
-language_chinese_btn_label.align(lv.ALIGN.LEFT_MID, 10, 0)
-language_chinese_btn_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-# -------------------------------------------dialswitch screen----------------------------------------------------------
-dialswitch_screen = lv.obj()
-dialswitch = lv.obj(dialswitch_screen)
-dialswitch.center()
-dialswitch.set_size(240, 320)
-dialswitch.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-dialswitch_title = lv.label(dialswitch)
-dialswitch_title.set_pos(0, 10)
-dialswitch_title.set_size(240, 40)
-dialswitch_title.set_text("表盘切换")
-dialswitch_title.set_long_mode(lv.label.LONG.WRAP)
-dialswitch_title.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-dialswitch_title.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-dialswitch_btn1 = lv.btn(dialswitch)
-dialswitch_btn1.set_size(240,54)
-dialswitch_btn1.set_pos(0, 50)
-dialswitch_btn1.add_style(style_contact_btn, lv.PART.MAIN | lv.STATE.PRESSED)
-dialswitch_btn1.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
-dialswitch_btn1_label = lv.label(dialswitch_btn1)
-dialswitch_btn1_label.set_text("表盘1")
-dialswitch_btn1_label.align(lv.ALIGN.LEFT_MID, 10, 0)
-dialswitch_btn1_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-dialswitch_btn2 = lv.btn(dialswitch)
-dialswitch_btn2.set_size(240,54)
-dialswitch_btn2.set_pos(0, 104)
-dialswitch_btn2.add_style(style_contact_btn, lv.PART.MAIN | lv.STATE.PRESSED)
-dialswitch_btn2.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
-dialswitch_btn2_label = lv.label(dialswitch_btn2)
-dialswitch_btn2_label.set_text("表盘2")
-dialswitch_btn2_label.align(lv.ALIGN.LEFT_MID, 10, 0)
-dialswitch_btn2_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-btn1_switch = lv.switch(dialswitch_btn1)
-btn1_switch.set_pos(185, 3)
-btn1_switch.set_size(10, 10)
-btn1_switch.set_style_bg_color(lv.color_make(0xff, 0xff, 0xff),lv.PART.MAIN | lv.PART.INDICATOR)
-btn1_switch.set_style_bg_color(lv.color_make(0xff, 0x00, 0x00),lv.PART.KNOB | lv.STATE.CHECKED)
-btn1_switch.set_style_bg_color(lv.color_make(0xff, 0xff, 0xff),lv.PART.KNOB)
-
-btn2_switch = lv.switch(dialswitch_btn2)
-btn2_switch.set_pos(185, 3)
-btn2_switch.set_size(10, 10)
-btn2_switch.set_style_bg_color(lv.color_make(0xff, 0xff, 0xff),lv.PART.MAIN | lv.PART.INDICATOR)
-btn2_switch.set_style_bg_color(lv.color_make(0xff, 0x00, 0x00),lv.PART.KNOB | lv.STATE.CHECKED)
-btn2_switch.set_style_bg_color(lv.color_make(0xff, 0xff, 0xff),lv.PART.KNOB)
-
-# -------------------------------------------menustyle screen----------------------------------------------------------
-menustyle_screen = lv.obj()
-menustyle = lv.obj(menustyle_screen)
-menustyle.center()
-menustyle.set_size(240, 320)
-menustyle.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-menustyle_title = lv.label(menustyle)
-menustyle_title.set_pos(0, 10)
-menustyle_title.set_size(240, 40)
-menustyle_title.set_text("主菜单风格")
-menustyle_title.set_long_mode(lv.label.LONG.WRAP)
-menustyle_title.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-menustyle_title.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-menustyle_btn1 = lv.btn(menustyle)
-menustyle_btn1.set_size(240,54)
-menustyle_btn1.set_pos(0, 50)
-menustyle_btn1.add_style(style_contact_btn, lv.PART.MAIN | lv.STATE.PRESSED)
-menustyle_btn1.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
-menustyle_btn1_label = lv.label(menustyle_btn1)
-menustyle_btn1_label.set_text("四宫格")
-menustyle_btn1_label.align(lv.ALIGN.LEFT_MID, 10, 0)
-menustyle_btn1_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-menu_btn1_switch = lv.switch(menustyle_btn1)
-menu_btn1_switch.set_pos(185, 3)
-menu_btn1_switch.set_size(10, 10)
-menu_btn1_switch.set_style_bg_color(lv.color_make(0xff, 0xff, 0xff),lv.PART.MAIN | lv.PART.INDICATOR)
-menu_btn1_switch.set_style_bg_color(lv.color_make(0xff, 0x00, 0x00),lv.PART.KNOB | lv.STATE.CHECKED)
-menu_btn1_switch.set_style_bg_color(lv.color_make(0xff, 0xff, 0xff),lv.PART.KNOB)
-
-menustyle_btn2 = lv.btn(menustyle)
-menustyle_btn2.set_size(240,54)
-menustyle_btn2.set_pos(0, 104)
-menustyle_btn2.add_style(style_contact_btn, lv.PART.MAIN | lv.STATE.PRESSED)
-menustyle_btn2.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
-menustyle_btn2_label = lv.label(menustyle_btn2)
-menustyle_btn2_label.set_text("单页")
-menustyle_btn2_label.align(lv.ALIGN.LEFT_MID, 10, 0)
-menustyle_btn2_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-
-menu_btn2_switch = lv.switch(menustyle_btn2)
-menu_btn2_switch.set_pos(185, 3)
-menu_btn2_switch.set_size(10, 10)
-menu_btn2_switch.set_style_bg_color(lv.color_make(0xff, 0xff, 0xff),lv.PART.MAIN | lv.PART.INDICATOR)
-menu_btn2_switch.set_style_bg_color(lv.color_make(0xff, 0x00, 0x00),lv.PART.KNOB | lv.STATE.CHECKED)
-menu_btn2_switch.set_style_bg_color(lv.color_make(0xff, 0xff, 0xff),lv.PART.KNOB)
-
-
-
-
-
-# -------------------------------------------app screen----------------------------------------------------------
-#app_screen = lv.obj()
-app_screen = lv.obj()
-app_screen.center()
-app_screen.set_size(240, 320)
-app_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-app_img = lv.img(app_screen)
-app_img.set_pos(int(20),int(40))
-app_img.set_size(200,200)
-app_img.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
-app_img.add_flag(lv.obj.FLAG.CLICKABLE)
-app_img.set_src("E:/static/IMAGE_APP_QR_CODE.png")
-app_img.add_style(style_screen, lv.PART.MAIN|lv.STATE.DEFAULT)
-# app_qr = lv.qrcode(imei, 150, fg_color, bg_color)
-# app_qr.center()
-# Add a border with bg_color
-# app_qr.set_style_border_color(bg_color, 0)
-# app_qr.set_style_border_width(5, 0)
-# app_qr_data = str("https://fangzoudiu.xcloudtech.com/xiao_jian")
-# app_qr.update(app_qr_data,len(app_qr_data))
-
-app_label = lv.label(app_screen)
-app_label.set_pos(0, 280)
-app_label.set_size(240, 20)
-app_label.set_text(" ")
-app_label.set_long_mode(lv.label.LONG.WRAP)
-app_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-app_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-
-# -------------------------------------------volume screen----------------------------------------------------------
-volume_screen = lv.obj()
-volume = lv.obj(volume_screen)
-volume.center()
-volume.set_size(240, 320)
-volume.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-volume_phone_btn = lv.btn(volume)
-volume_phone_btn.set_size(240,40)
-volume_phone_btn.set_pos(0,30)
-volume_phone_btn.add_style(style_volume_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-volume_phone_label = lv.label(volume_phone_btn)
-volume_phone_label.set_text("电话铃声")
-volume_phone_label.align(lv.ALIGN.CENTER, 0, 0)
-volume_phone_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-volume_alarm_btn = lv.btn(volume)
-volume_alarm_btn.set_size(240,40)
-volume_alarm_btn.set_pos(0,100)
-volume_alarm_btn.add_style(style_volume_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-volume_alarm_label = lv.label(volume_alarm_btn)
-volume_alarm_label.set_text("闹钟铃声")
-volume_alarm_label.align(lv.ALIGN.CENTER, 0, 0)
-volume_alarm_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-volume_message_btn = lv.btn(volume)
-volume_message_btn.set_size(240,40)
-volume_message_btn.set_pos(0,170)
-volume_message_btn.add_style(style_volume_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-volume_message_label = lv.label(volume_message_btn)
-volume_message_label.set_text("消息铃声")
-volume_message_label.align(lv.ALIGN.CENTER, 0, 0)
-volume_message_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-# -------------------------------------------phonering screen----------------------------------------------------------
-phonering_screen = lv.obj()
-phonering = lv.obj(phonering_screen)
-phonering.center()
-phonering.set_size(240, 320)
-phonering.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-phonering_title = lv.label(phonering)
-phonering_title.set_pos(0, 10)
-phonering_title.set_size(240, 40)
-phonering_title.set_text("电话铃声")
-phonering_title.set_long_mode(lv.label.LONG.WRAP)
-phonering_title.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-phonering_title.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-phonering_label1 = lv.label(phonering)
-phonering_label1.set_pos(10, 70)
-phonering_label1.set_size(230, 40)
-phonering_label1.set_text("电话铃声:")
-phonering_label1.set_long_mode(lv.label.LONG.WRAP)
-phonering_label1.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0)
-phonering_label1.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-phonering_bar = lv.bar(phonering)
-phonering_bar.set_pos(20, 120)
-phonering_bar.set_size(200, 15)
-phonering_bar.set_style_anim_time(1000, lv.PART.INDICATOR | lv.STATE.DEFAULT)
-phonering_bar.set_mode(lv.bar.MODE.NORMAL)
-phonering_bar.set_value(50, lv.ANIM.OFF)
-phonering_bar.add_style(style_bar, lv.PART.MAIN | lv.STATE.DEFAULT)
-phonering_bar.add_style(style_bar_indic, lv.PART.INDICATOR | lv.STATE.DEFAULT)
-
-phonering_reduce_imgbtn = lv.img(phonering)
-phonering_reduce_imgbtn.set_pos(0, 150)
-phonering_reduce_imgbtn.set_size(110, 46)
-phonering_reduce_imgbtn.add_flag(lv.obj.FLAG.CLICKABLE)
-phonering_reduce_imgbtn.set_src("E:/static/reduce_btn.png")
-phonering_reduce_imgbtn.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-
-phonering_add_imgbtn = lv.img(phonering)
-phonering_add_imgbtn.set_pos(120, 150)
-phonering_add_imgbtn.set_size(110, 46)
-phonering_add_imgbtn.add_flag(lv.obj.FLAG.CLICKABLE)
-
-phonering_add_imgbtn.set_src("E:/static/add_btn.png")
-
-phonering_add_imgbtn.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-
-# -------------------------------------------alarmvolume screen----------------------------------------------------------
-alarmvolume_screen = lv.obj()
-alarmvolume = lv.obj(alarmvolume_screen)
-alarmvolume.center()
-alarmvolume.set_size(240, 320)
-alarmvolume.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-alarmvolume_title = lv.label(alarmvolume)
-alarmvolume_title.set_pos(0, 10)
-alarmvolume_title.set_size(240, 40)
-alarmvolume_title.set_text("闹钟铃声")
-alarmvolume_title.set_long_mode(lv.label.LONG.WRAP)
-alarmvolume_title.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-alarmvolume_title.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-alarmvolume_label1 = lv.label(alarmvolume)
-alarmvolume_label1.set_pos(10, 70)
-alarmvolume_label1.set_size(230, 40)
-alarmvolume_label1.set_text("闹钟铃声:")
-alarmvolume_label1.set_long_mode(lv.label.LONG.WRAP)
-alarmvolume_label1.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0)
-alarmvolume_label1.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-alarmvolume_bar = lv.bar(alarmvolume)
-alarmvolume_bar.set_pos(20, 120)
-alarmvolume_bar.set_size(200, 15)
-alarmvolume_bar.set_style_anim_time(1000, lv.PART.INDICATOR | lv.STATE.DEFAULT)
-alarmvolume_bar.set_mode(lv.bar.MODE.NORMAL)
-alarmvolume_bar.set_value(50, lv.ANIM.OFF)
-alarmvolume_bar.add_style(style_bar, lv.PART.MAIN | lv.STATE.DEFAULT)
-alarmvolume_bar.add_style(style_bar_indic, lv.PART.INDICATOR | lv.STATE.DEFAULT)
-
-alarmvolume_reduce_imgbtn = lv.img(alarmvolume)
-alarmvolume_reduce_imgbtn.set_pos(5, 150)
-alarmvolume_reduce_imgbtn.set_size(110, 46)
-alarmvolume_reduce_imgbtn.add_flag(lv.obj.FLAG.CLICKABLE)
-
-alarmvolume_reduce_imgbtn.set_src("E:/static/reduce_btn.png")
-
-alarmvolume_reduce_imgbtn.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-
-alarmvolume_add_imgbtn = lv.img(alarmvolume)
-alarmvolume_add_imgbtn.set_pos(125, 150)
-alarmvolume_add_imgbtn.set_size(110, 46)
-alarmvolume_add_imgbtn.add_flag(lv.obj.FLAG.CLICKABLE)
-
-alarmvolume_add_imgbtn.set_src("E:/static/add_btn.png")
-
-alarmvolume_add_imgbtn.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-
-# -------------------------------------------msgvolume screen----------------------------------------------------------
-msgvolume_screen = lv.obj()
-msgvolume = lv.obj(msgvolume_screen)
-msgvolume.center()
-msgvolume.set_size(240, 320)
-msgvolume.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-msgvolume_title = lv.label(msgvolume)
-msgvolume_title.set_pos(0, 10)
-msgvolume_title.set_size(240, 40)
-msgvolume_title.set_text("消息铃声")
-msgvolume_title.set_long_mode(lv.label.LONG.WRAP)
-msgvolume_title.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-msgvolume_title.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-msgvolume_label1 = lv.label(msgvolume)
-msgvolume_label1.set_pos(10, 70)
-msgvolume_label1.set_size(230, 40)
-msgvolume_label1.set_text("消息铃声:")
-msgvolume_label1.set_long_mode(lv.label.LONG.WRAP)
-msgvolume_label1.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0)
-msgvolume_label1.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-msgvolume_bar = lv.bar(msgvolume)
-msgvolume_bar.set_pos(20, 120)
-msgvolume_bar.set_size(200, 15)
-msgvolume_bar.set_style_anim_time(1000, lv.PART.INDICATOR | lv.STATE.DEFAULT)
-msgvolume_bar.set_mode(lv.bar.MODE.NORMAL)
-msgvolume_bar.set_value(50, lv.ANIM.OFF)
-msgvolume_bar.add_style(style_bar, lv.PART.MAIN | lv.STATE.DEFAULT)
-msgvolume_bar.add_style(style_bar_indic, lv.PART.INDICATOR | lv.STATE.DEFAULT)
-
-msgvolume_reduce_imgbtn = lv.img(msgvolume)
-msgvolume_reduce_imgbtn.set_pos(5, 150)
-msgvolume_reduce_imgbtn.set_size(110, 46)
-msgvolume_reduce_imgbtn.add_flag(lv.obj.FLAG.CLICKABLE)
-
-msgvolume_reduce_imgbtn.set_src("E:/static/reduce_btn.png")
-
-msgvolume_reduce_imgbtn.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-
-msgvolume_add_imgbtn = lv.img(msgvolume)
-msgvolume_add_imgbtn.set_pos(125, 150)
-msgvolume_add_imgbtn.set_size(110, 46)
-msgvolume_add_imgbtn.add_flag(lv.obj.FLAG.CLICKABLE)
-
-msgvolume_add_imgbtn.set_src("E:/static/add_btn.png")
-
-msgvolume_add_imgbtn.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-
-# -------------------------------------------restore screen----------------------------------------------------------
-restore_screen = lv.obj()
-restore = lv.obj(restore_screen)
-restore.center()
-restore.set_size(240, 320)
-restore.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-restore_label = lv.label(restore)
-restore_label.set_pos(0, 100)
-restore_label.set_size(240, 40)
-restore_label.set_text("恢复出厂设置?")
-restore_label.set_long_mode(lv.label.LONG.WRAP)
-restore_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-restore_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-restore_confirm = lv.label(restore)
-restore_confirm.set_text("确认")
-restore_confirm.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-restore_confirm.set_size(120, 40)
-restore_confirm.set_pos(0,180)
-restore_confirm.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-restore_confirm.add_flag(lv.obj.FLAG.CLICKABLE)
-restore_confirm.set_ext_click_area(20)
-
-restore_cancel = lv.label(restore)
-restore_cancel.set_text("返回")
-restore_cancel.set_size(120, 40)
-restore_cancel.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-restore_cancel.set_pos(120,180)
-restore_cancel.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-restore_cancel.add_flag(lv.obj.FLAG.CLICKABLE)
-restore_cancel.set_ext_click_area(20)
-
-
-
-
-
-# -------------------------------------------version screen----------------------------------------------------------
-version_screen = lv.obj()
-version = lv.obj(version_screen)
-version.center()
-version.set_size(240, 320)
-version.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-version_msg = "Software Version:\n\
-MMI\n\
-Version:UIX8910_C55_V\n\
-1.0_Release\n\
-Build Time:\n\
-2-17-2023\n\
-9:32:5\n\
-IMEI:\n\
-"
-
-version_label1 = lv.label(version)
-version_label1.set_pos(0, 0)
-version_label1.set_size(240, 25)
-version_label1.set_long_mode(lv.label.LONG.WRAP)
-version_label1.set_text("Software Version:")
-version_label1.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-version_label1.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-version_label2 = lv.label(version)
-version_label2.set_pos(0, 25)
-version_label2.set_size(240, 25)
-version_label2.set_long_mode(lv.label.LONG.WRAP)
-version_label2.set_text("MMI")
-version_label2.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-version_label2.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-version_label3 = lv.label(version)
-version_label3.set_pos(0, 50)
-version_label3.set_size(240, 25)
-version_label3.set_long_mode(lv.label.LONG.WRAP)
-version_label3.set_text("Version:UIX8910_C55_V")
-version_label3.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-version_label3.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-version_label4 = lv.label(version)
-version_label4.set_pos(0, 75)
-version_label4.set_size(240, 25)
-version_label4.set_long_mode(lv.label.LONG.WRAP)
-version_label4.set_text("1.0_Release")
-version_label4.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-version_label4.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-version_label5 = lv.label(version)
-version_label5.set_pos(0, 100)
-version_label5.set_size(240, 25)
-version_label5.set_long_mode(lv.label.LONG.WRAP)
-version_label5.set_text("Build Time:")
-version_label5.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-version_label5.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-version_label6 = lv.label(version)
-version_label6.set_pos(0, 125)
-version_label6.set_size(240, 25)
-version_label6.set_long_mode(lv.label.LONG.WRAP)
-version_label6.set_text("2-17-2023")
-version_label6.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-version_label6.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-version_label7 = lv.label(version)
-version_label7.set_pos(0, 150)
-version_label7.set_size(240, 25)
-version_label7.set_long_mode(lv.label.LONG.WRAP)
-version_label7.set_text("9:32:5")
-version_label7.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-version_label7.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-version_label8 = lv.label(version)
-version_label8.set_pos(0, 175)
-version_label8.set_size(240, 25)
-version_label8.set_long_mode(lv.label.LONG.WRAP)
-version_label8.set_text("IMEI:")
-version_label8.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-version_label8.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-version_label9 = lv.label(version)
-version_label9.set_pos(20, 200)
-version_label9.set_size(220, 100)
-version_label9.set_long_mode(lv.label.LONG.WRAP)
-version_label9.set_text(" ")
-version_label9.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-version_label9.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-
-
-# -------------------------------------------update screen----------------------------------------------------------
-update_screen = lv.obj()
-update = lv.obj(update_screen)
-update.center()
-update.set_size(240, 320)
-update.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-update_title = lv.label(update)
-update_title.set_pos(0, 10)
-update_title.set_size(240, 40)
-update_title.set_text("系统更新")
-update_title.set_long_mode(lv.label.LONG.WRAP)
-update_title.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-update_title.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-update_label = lv.label(update)
-update_label.set_text(" 检查版本更新!/n 请稍后...")
-update_label.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0)
-update_label.set_size(240, 50)
-update_label.set_pos(0,50)
-update_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-update_return = lv.label(update)
-update_return.set_text("返回")
-update_return.set_size(240, 40)
-update_return.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-update_return.set_pos(0,240)
-update_return.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-update_return.add_flag(lv.obj.FLAG.CLICKABLE)
-
 class RestoreScreen(Screen):
     NAME = "restore"
-
+    #恢复出厂
     def __init__(self):
         super().__init__()
-        self.meta = restore_screen
-        restore_confirm.add_event_cb(lambda e: self.confirm(e),lv.EVENT.CLICKED, None)
-        restore_cancel.add_event_cb(lambda e: self.concel(e),lv.EVENT.CLICKED, None)
+        self.meta = None
         
+    def initialization(self):
+        if self.meta == None :
+            print("RestoreScreen :initialization:self.meta == None")
+        self.meta = lv.obj()
+        self.restore = lv.obj(self.meta)
+        self.restore.center()
+        self.restore.set_size(240, 320)
+        self.restore.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+        self.restore_label = lv.label(self.restore)
+        self.restore_label.set_pos(0, 100)
+        self.restore_label.set_size(240, 40)
+        self.restore_label.set_text("恢复出厂设置?")
+        self.restore_label.set_long_mode(lv.label.LONG.WRAP)
+        self.restore_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+        self.restore_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+        self.restore_confirm = lv.label(self.restore)
+        self.restore_confirm.set_text("确认")
+        self.restore_confirm.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+        self.restore_confirm.set_size(120, 40)
+        self.restore_confirm.set_pos(0,180)
+        self.restore_confirm.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+        self.restore_confirm.add_flag(lv.obj.FLAG.CLICKABLE)
+        self.restore_confirm.set_ext_click_area(20)
+
+        self.restore_cancel = lv.label(self.restore)
+        self.restore_cancel.set_text("返回")
+        self.restore_cancel.set_size(120, 40)
+        self.restore_cancel.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+        self.restore_cancel.set_pos(120,180)
+        self.restore_cancel.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+        self.restore_cancel.add_flag(lv.obj.FLAG.CLICKABLE)
+        self.restore_cancel.set_ext_click_area(20)
+
+        self.restore_confirm.add_event_cb(lambda e: self.confirm(e),lv.EVENT.CLICKED, None)
+        self.restore_cancel.add_event_cb(lambda e: self.concel(e),lv.EVENT.CLICKED, None)
     def confirm(self, e):
         ret = 0
         ret = ql_fs.path_exists("/ext/static/storage_file")#电话本
         if ret == True:
             ql_fs.rmdirs("/ext/static/storage_file")
             ql_fs.mkdirs("/ext/static/storage_file")
+        utime.sleep_ms(2000)
         Power.powerRestart()
         # EventMesh.publish("load_screen", {"screen": "setting"})
 
     def concel(self, e):
         EventMesh.publish("load_screen", {"screen": "setting"})
 
+    def Close(self):
+        self.meta.delete()
+        self.meta = None
+    
     def done_return(self):
         EventMesh.publish("load_screen", {"screen": "setting"})
 
@@ -853,16 +387,53 @@ class RestoreScreen(Screen):
         
     def btn8_press(self):
         EventMesh.publish("load_screen", {"screen": "setting"})
-
+  
 
 class UpdateScreen(Screen):
     NAME = "update"
 
     def __init__(self):
         super().__init__()
-        self.meta = update_screen
-        update_return.add_event_cb(lambda e: self.back(e),lv.EVENT.CLICKED, None)
-    
+        self.meta = None
+        #系统更新
+    def initialization(self):
+        if self.meta == None :
+            print("UpdateScreen :initialization:self.meta == None")
+            self.meta = lv.obj()
+            self.update = lv.obj(self.meta)
+            self.update.center()
+            self.update.set_size(240, 320)
+            self.update.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.update_title = lv.label(self.update)
+            self.update_title.set_pos(0, 10)
+            self.update_title.set_size(240, 40)
+            self.update_title.set_text("系统更新")
+            self.update_title.set_long_mode(lv.label.LONG.WRAP)
+            self.update_title.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            self.update_title.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.update_label = lv.label(self.update)
+            self.update_label.set_text(" 检查版本更新!/n 请稍后...")
+            self.update_label.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0)
+            self.update_label.set_size(240, 50)
+            self.update_label.set_pos(0,50)
+            self.update_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.update_return = lv.label(self.update)
+            self.update_return.set_text("返回")
+            self.update_return.set_size(240, 40)
+            self.update_return.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            self.update_return.set_pos(0,240)
+            self.update_return.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.update_return.add_flag(lv.obj.FLAG.CLICKABLE)
+
+            self.update_return.add_event_cb(lambda e: self.back(e),lv.EVENT.CLICKED, None)
+
+    def Close(self):
+        self.meta.delete()
+        self.meta = None
+
     def back(self,e):
         EventMesh.publish("load_screen", {"screen": "setting"})
        
@@ -878,18 +449,110 @@ class UpdateScreen(Screen):
 
 class VersionScreen(Screen):
     NAME = "version"
-
+    #查看版本
     def __init__(self):
         super().__init__()
-        self.meta = version_screen
+        self.meta = None
         self.btn_count = 0
+
     def initialization(self):
+        if self.meta == None :
+            self.meta = lv.obj()
+            self.version = lv.obj(self.meta)
+            self.version.center()
+            self.version.set_size(240, 320)
+            self.version.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            # self.version_msg = "Software Version:\n\
+            # MMI\n\
+            # Version:UIX8910_C55_V\n\
+            # 1.0_Release\n\
+            # Build Time:\n\
+            # 2-17-2023\n\
+            # 9:32:5\n\
+            # IMEI:\n\
+            # "
+
+            self.version_label1 = lv.label(self.version)
+            self.version_label1.set_pos(0, 0)
+            self.version_label1.set_size(240, 25)
+            self.version_label1.set_long_mode(lv.label.LONG.WRAP)
+            self.version_label1.set_text("Software Version:")
+            self.version_label1.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            self.version_label1.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.version_label2 = lv.label(self.version)
+            self.version_label2.set_pos(0, 25)
+            self.version_label2.set_size(240, 25)
+            self.version_label2.set_long_mode(lv.label.LONG.WRAP)
+            self.version_label2.set_text("MMI")
+            self.version_label2.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            self.version_label2.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.version_label3 = lv.label(self.version)
+            self.version_label3.set_pos(0, 50)
+            self.version_label3.set_size(240, 25)
+            self.version_label3.set_long_mode(lv.label.LONG.WRAP)
+            self.version_label3.set_text("Version:K5_V")
+            self.version_label3.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            self.version_label3.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.version_label4 = lv.label(self.version)
+            self.version_label4.set_pos(0, 75)
+            self.version_label4.set_size(240, 25)
+            self.version_label4.set_long_mode(lv.label.LONG.WRAP)
+            self.version_label4.set_text("1.0_Release")
+            self.version_label4.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            self.version_label4.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.version_label5 = lv.label(self.version)
+            self.version_label5.set_pos(0, 100)
+            self.version_label5.set_size(240, 25)
+            self.version_label5.set_long_mode(lv.label.LONG.WRAP)
+            self.version_label5.set_text("Build Time:")
+            self.version_label5.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            self.version_label5.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.version_label6 = lv.label(self.version)
+            self.version_label6.set_pos(0, 125)
+            self.version_label6.set_size(240, 25)
+            self.version_label6.set_long_mode(lv.label.LONG.WRAP)
+            self.version_label6.set_text("2-17-2023")
+            self.version_label6.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            self.version_label6.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.version_label7 = lv.label(self.version)
+            self.version_label7.set_pos(0, 150)
+            self.version_label7.set_size(240, 25)
+            self.version_label7.set_long_mode(lv.label.LONG.WRAP)
+            self.version_label7.set_text("9:32:5")
+            self.version_label7.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            self.version_label7.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.version_label8 = lv.label(self.version)
+            self.version_label8.set_pos(0, 175)
+            self.version_label8.set_size(240, 25)
+            self.version_label8.set_long_mode(lv.label.LONG.WRAP)
+            self.version_label8.set_text("IMEI:")
+            self.version_label8.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            self.version_label8.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.version_label9 = lv.label(self.version)
+            self.version_label9.set_pos(20, 200)
+            self.version_label9.set_size(220, 100)
+            self.version_label9.set_long_mode(lv.label.LONG.WRAP)
+            self.version_label9.set_text(" ")
+            self.version_label9.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            self.version_label9.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
         imei = EventMesh.publish(constants.EVENT.GET_IMEI)
-        version_label9.set_text(imei)
+        self.version_label9.set_text(imei)
 
     def Close(self):
         self.btn_count = 0
-    
+        self.meta.delete()
+        self.meta = None
+
     def done_click(self):
         self.btn_count += 1
         if self.btn_count >= 5 :
@@ -909,50 +572,7 @@ class VersionScreen(Screen):
     def btn8_press(self):
         EventMesh.publish("load_screen", {"screen": "setting"})
 
-# -------------------------------------------poweroff screen----------------------------------------------------------
-poweroff_screen = lv.obj()
-poweroff = lv.obj(poweroff_screen)
-poweroff.center()
-poweroff.set_size(240, 320)
-poweroff.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-poweroff_img = lv.img(poweroff)
-poweroff_img.set_pos(100, 30)
-poweroff_img.set_size(61, 61)
-poweroff_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-poweroff_img.set_src("E:/static/poweroff_icon.png")
-
-poweroff_label = lv.label(poweroff)
-poweroff_label.set_text("是否关机?")
-poweroff_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-poweroff_label.set_size(240, 20)
-poweroff_label.set_pos(0,120)
-poweroff_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-poweroff_confirm = lv.img(poweroff)
-poweroff_confirm.set_size(176, 46)
-poweroff_confirm.set_pos(32, 150)
-poweroff_confirm.set_src("E:/static/off_icon.png")
-poweroff_confirm.add_flag(lv.obj.FLAG.CLICKABLE)
-poweroff_confirm.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-poweroff_confirm.set_ext_click_area(20)
-
-poweroff_confirm_label = lv.label(poweroff_confirm)
-poweroff_confirm_label.set_text("关机")
-poweroff_confirm_label.align(lv.ALIGN.CENTER, 0, 0)
-poweroff_confirm_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-poweroff_return = lv.img(poweroff)
-poweroff_return.set_size(176, 46)
-poweroff_return.set_pos(32, 210)
-poweroff_return.set_src("E:/static/cancel_icon.png")
-poweroff_return.add_flag(lv.obj.FLAG.CLICKABLE)
-poweroff_return.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-poweroff_return_label = lv.label(poweroff_return)
-poweroff_return_label.set_text("返回")
-poweroff_return_label.align(lv.ALIGN.CENTER, 0, 0)
-poweroff_return_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-poweroff_return.set_ext_click_area(20)
+
 
 
 class PoweroffScreen(Screen):
@@ -960,15 +580,64 @@ class PoweroffScreen(Screen):
 
     def __init__(self):
         super().__init__()
-        self.meta = poweroff_screen
+        self.meta = None
         self.timer = osTimer()
         self.button_flag = 0
-        poweroff_confirm.add_event_cb(lambda e: self.confirm(e),lv.EVENT.CLICKED, None)
-        poweroff_return.add_event_cb(lambda e: self.concel(e),lv.EVENT.CLICKED, None)
+        
 
     def initialization(self):
-        pass
-        
+        if self.meta == None :
+            self.meta = lv.obj()
+            self.poweroff = lv.obj(self.meta)
+            self.poweroff.center()
+            self.poweroff.set_size(240, 320)
+            self.poweroff.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.poweroff_img = lv.img(self.poweroff)
+            self.poweroff_img.set_pos(100, 30)
+            self.poweroff_img.set_size(61, 61)
+            self.poweroff_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.poweroff_img.set_src("E:/static/poweroff_icon.png")
+
+            self.poweroff_label = lv.label(self.poweroff)
+            self.poweroff_label.set_text("是否关机?")
+            self.poweroff_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            self.poweroff_label.set_size(240, 20)
+            self.poweroff_label.set_pos(0,120)
+            self.poweroff_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.poweroff_confirm = lv.img(self.poweroff)
+            self.poweroff_confirm.set_size(176, 46)
+            self.poweroff_confirm.set_pos(32, 150)
+            self.poweroff_confirm.set_src("E:/static/off_icon.png")
+            self.poweroff_confirm.add_flag(lv.obj.FLAG.CLICKABLE)
+            self.poweroff_confirm.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.poweroff_confirm.set_ext_click_area(20)
+
+            self.poweroff_confirm_label = lv.label(self.poweroff_confirm)
+            self.poweroff_confirm_label.set_text("关机")
+            self.poweroff_confirm_label.align(lv.ALIGN.CENTER, 0, 0)
+            self.poweroff_confirm_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.poweroff_return = lv.img(self.poweroff)
+            self.poweroff_return.set_size(176, 46)
+            self.poweroff_return.set_pos(32, 210)
+            self.poweroff_return.set_src("E:/static/cancel_icon.png")
+            self.poweroff_return.add_flag(lv.obj.FLAG.CLICKABLE)
+            self.poweroff_return.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.poweroff_return_label = lv.label(self.poweroff_return)
+            self.poweroff_return_label.set_text("返回")
+            self.poweroff_return_label.align(lv.ALIGN.CENTER, 0, 0)
+            self.poweroff_return_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.poweroff_return.set_ext_click_area(20)
+
+            self.poweroff_confirm.add_event_cb(lambda e: self.confirm(e),lv.EVENT.CLICKED, None)
+            self.poweroff_return.add_event_cb(lambda e: self.concel(e),lv.EVENT.CLICKED, None)
+
+    def Close(self):
+        self.meta.delete()
+        self.meta = None
+
     def done_return(self):
         EventMesh.publish("load_screen", {"screen": "setting"})
         
@@ -987,27 +656,35 @@ class PoweroffScreen(Screen):
 
 
 
-poweroff_confirm_screen = lv.obj()
-poweroff_confirm = lv.obj(poweroff_confirm_screen)
-poweroff_confirm.center()
-poweroff_confirm.set_size(240, 320)
-poweroff_confirm.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
 
-poweroff_confirm_label = lv.label(poweroff_confirm)
-poweroff_confirm_label.set_text("Goodbye")
-poweroff_confirm_label.align(lv.ALIGN.CENTER, 0, 0)
-poweroff_confirm_label.add_style(style_font_youyuan_40, lv.PART.MAIN | lv.STATE.DEFAULT)
 
 class PoweroffConfirmScreen(Screen):
     NAME = "poweroff_comfirm"
 
     def __init__(self):
         super().__init__()
-        self.meta = poweroff_confirm_screen
+        self.meta = None
         self.timer = osTimer()
+
     def initialization(self):
+        if self.meta == None :    
+            self.meta = lv.obj()
+            self.poweroff_confirm = lv.obj(self.meta)
+            self.poweroff_confirm.center()
+            self.poweroff_confirm.set_size(240, 320)
+            self.poweroff_confirm.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.poweroff_confirm_label = lv.label(self.poweroff_confirm)
+            self.poweroff_confirm_label.set_text("Goodbye")
+            self.poweroff_confirm_label.align(lv.ALIGN.CENTER, 0, 0)
+            self.poweroff_confirm_label.add_style(style_font_youyuan_40, lv.PART.MAIN | lv.STATE.DEFAULT)
+
         self.timer.start(2*1000,0,self.power_off)
 
+    def Close(self):
+        self.meta.delete()
+        self.meta = None
+
     def power_off(self,*args):
         Power.powerDown()
     
@@ -1019,55 +696,88 @@ class PoweroffConfirmScreen(Screen):
         
     def btn8_press(self):
         pass
-
-
-class LanguageScreen(Screen):
-    NAME = "language"
-
-    def __init__(self):
-        super().__init__()
-        self.meta = language_screen
-
-    def done_return(self):
-        EventMesh.publish("load_screen", {"screen": "setting"})
-
-    def btn1_release(self):
-        EventMesh.publish("load_screen", {"screen": "main_menu"})
-        
-    def btn8_press(self):
-        EventMesh.publish("load_screen", {"screen": "setting"})
-
-
 class DialswitchScreen(Screen):
     NAME = "dialswitch"
-
+    #表盘切换
     def __init__(self):
         super().__init__()
-        self.meta = dialswitch_screen
+        self.meta = None
         self.read_data = {}
         self.watchface_style_num = "Watchface1"
-        dialswitch_btn1.add_event_cb(lambda e: self.watchface01(e),
-                                     lv.EVENT.PRESSED, None)
-
-        dialswitch_btn2.add_event_cb(lambda e: self.watchface02(e),
-                                     lv.EVENT.PRESSED, None)
+        
     def initialization(self):
+        if self.meta == None:
+            print("DialswitchScreen:initialization:self.meta == None")
+            self.meta = lv.obj()
+            self.dialswitch = lv.obj(self.meta)
+            self.dialswitch.center()
+            self.dialswitch.set_size(240, 320)
+            self.dialswitch.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.dialswitch_title = lv.label(self.dialswitch)
+            self.dialswitch_title.set_pos(0, 10)
+            self.dialswitch_title.set_size(240, 40)
+            self.dialswitch_title.set_text("表盘切换")
+            self.dialswitch_title.set_long_mode(lv.label.LONG.WRAP)
+            self.dialswitch_title.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            self.dialswitch_title.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.dialswitch_btn1 = lv.btn(self.dialswitch)
+            self.dialswitch_btn1.set_size(240,54)
+            self.dialswitch_btn1.set_pos(0, 50)
+            self.dialswitch_btn1.add_style(style_contact_btn, lv.PART.MAIN | lv.STATE.PRESSED)
+            self.dialswitch_btn1.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.dialswitch_btn1_label = lv.label(self.dialswitch_btn1)
+            self.dialswitch_btn1_label.set_text("表盘1")
+            self.dialswitch_btn1_label.align(lv.ALIGN.LEFT_MID, 10, 0)
+            self.dialswitch_btn1_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.dialswitch_btn2 = lv.btn(self.dialswitch)
+            self.dialswitch_btn2.set_size(240,54)
+            self.dialswitch_btn2.set_pos(0, 104)
+            self.dialswitch_btn2.add_style(style_contact_btn, lv.PART.MAIN | lv.STATE.PRESSED)
+            self.dialswitch_btn2.add_style(style_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.dialswitch_btn2_label = lv.label(self.dialswitch_btn2)
+            self.dialswitch_btn2_label.set_text("表盘2")
+            self.dialswitch_btn2_label.align(lv.ALIGN.LEFT_MID, 10, 0)
+            self.dialswitch_btn2_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.btn1_switch = lv.switch(self.dialswitch_btn1)
+            self.btn1_switch.set_pos(185, 3)
+            self.btn1_switch.set_size(10, 10)
+            self.btn1_switch.set_style_bg_color(lv.color_make(0xff, 0xff, 0xff),lv.PART.MAIN | lv.PART.INDICATOR)
+            self.btn1_switch.set_style_bg_color(lv.color_make(0xff, 0x00, 0x00),lv.PART.KNOB | lv.STATE.CHECKED)
+            self.btn1_switch.set_style_bg_color(lv.color_make(0xff, 0xff, 0xff),lv.PART.KNOB)
+
+            self.btn2_switch = lv.switch(self.dialswitch_btn2)
+            self.btn2_switch.set_pos(185, 3)
+            self.btn2_switch.set_size(10, 10)
+            self.btn2_switch.set_style_bg_color(lv.color_make(0xff, 0xff, 0xff),lv.PART.MAIN | lv.PART.INDICATOR)
+            self.btn2_switch.set_style_bg_color(lv.color_make(0xff, 0x00, 0x00),lv.PART.KNOB | lv.STATE.CHECKED)
+            self.btn2_switch.set_style_bg_color(lv.color_make(0xff, 0xff, 0xff),lv.PART.KNOB)
+            self.dialswitch_btn1.add_event_cb(lambda e: self.watchface01(e),
+                                        lv.EVENT.PRESSED, None)
+
+            self.dialswitch_btn2.add_event_cb(lambda e: self.watchface02(e),
+                                        lv.EVENT.PRESSED, None)
+        
+
         self.read_data = EventMesh.publish("get_storage_data")
         if self.read_data != {}:
             b = str("watchface") in self.read_data.keys()
             if b == True:
                 self.watchface_style_num = self.read_data["watchface"]
         if self.watchface_style_num == "Watchface1":
-            btn1_switch.add_state(lv.STATE.CHECKED)
-            btn2_switch.clear_state(lv.STATE.CHECKED)
+            self.btn1_switch.add_state(lv.STATE.CHECKED)
+            self.btn2_switch.clear_state(lv.STATE.CHECKED)
         else:
-            btn1_switch.clear_state(lv.STATE.CHECKED)
-            btn2_switch.add_state(lv.STATE.CHECKED)
+            self.btn1_switch.clear_state(lv.STATE.CHECKED)
+            self.btn2_switch.add_state(lv.STATE.CHECKED)
        
 
     def watchface01(self,e):
-        btn1_switch.add_state(lv.STATE.CHECKED)
-        btn2_switch.clear_state(lv.STATE.CHECKED)
+        self.btn1_switch.add_state(lv.STATE.CHECKED)
+        self.btn2_switch.clear_state(lv.STATE.CHECKED)
         self.read_data["watchface"] = "Watchface1"
         EventMesh.publish("set_storage_data", self.read_data)
         with open("/ext/static/storage_file/config.json","w",encoding="utf-8") as fd:
@@ -1077,8 +787,8 @@ class DialswitchScreen(Screen):
         EventMesh.publish("load_screen", {"screen": "main_menu"})
 
     def watchface02(self,e):
-        btn1_switch.clear_state(lv.STATE.CHECKED)
-        btn2_switch.add_state(lv.STATE.CHECKED)
+        self.btn1_switch.clear_state(lv.STATE.CHECKED)
+        self.btn2_switch.add_state(lv.STATE.CHECKED)
         self.read_data["watchface"] = "Watchface2"
         EventMesh.publish("set_storage_data", self.read_data)
         with open("/ext/static/storage_file/config.json","w",encoding="utf-8") as fd:
@@ -1095,79 +805,51 @@ class DialswitchScreen(Screen):
         
     def btn8_press(self):
         EventMesh.publish("load_screen", {"screen": "setting"})
+    def Close(self):
+        self.meta.delete()
+        self.meta = None
 
 
-class ThemeswitchScreen(Screen):
-    NAME = "themeswitch"
-
-    def __init__(self):
-        super().__init__()
-        self.meta = menustyle_screen
-        menustyle_btn1.add_event_cb(lambda e: self.fun1(e),
-                                     lv.EVENT.PRESSED, None)
-
-        menustyle_btn2.add_event_cb(lambda e: self.fun2(e),
-                                     lv.EVENT.PRESSED, None)
-
-    def fun1(self,e):
-        menu_btn1_switch.add_state(lv.STATE.CHECKED)
-        menu_btn2_switch.clear_state(lv.STATE.CHECKED)
-        EventMesh.publish("change_style", "MainMenu1")
-        EventMesh.publish("load_screen", {"screen": "main_menu"})
-
-    def fun2(self,e):
-        menu_btn1_switch.clear_state(lv.STATE.CHECKED)
-        menu_btn2_switch.add_state(lv.STATE.CHECKED)
-        EventMesh.publish("change_style", "MainMenu2")
-        EventMesh.publish("load_screen", {"screen": "main_menu"})
-
-    def done_return(self):
-        EventMesh.publish("load_screen", {"screen": "main_menu"})
-
-    def btn1_release(self):
-        EventMesh.publish("load_screen", {"screen": "main_menu"})
-        
-    def btn8_press(self):
-        EventMesh.publish("load_screen", {"screen": "setting"})
-
-# -------------------------------------------imei screen----------------------------------------------------------
-imei_screen = lv.obj()
-imei = lv.obj(imei_screen)
-imei.center()
-imei.set_size(240, 320)
-imei.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-bg_color = lv.palette_lighten(lv.PALETTE.LIGHT_BLUE, 5)
-fg_color = lv.palette_darken(lv.PALETTE.BLUE, 4)
-
-imei_qr = lv.qrcode(imei, 150, fg_color, bg_color)
-imei_qr.center()
-# Add a border with bg_color
-imei_qr.set_style_border_color(bg_color, 0)
-imei_qr.set_style_border_width(5, 0)
-
-
-imei_label = lv.label(imei)
-imei_label.set_pos(0, 280)
-imei_label.set_size(240, 20)
-imei_label.set_text(" ")
-imei_label.set_long_mode(lv.label.LONG.WRAP)
-imei_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-imei_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
 class ImeiScreen(Screen):
     NAME = "imei"
 
     def __init__(self):
         super().__init__()
-        self.meta = imei_screen
+        self.meta = None
 
     def initialization(self):
+        if self.meta == None:    
+            self.meta = lv.obj()
+            self.imei = lv.obj(self.meta)
+            self.imei.center()
+            self.imei.set_size(240, 320)
+            self.imei.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            bg_color = lv.palette_lighten(lv.PALETTE.LIGHT_BLUE, 5)
+            fg_color = lv.palette_darken(lv.PALETTE.BLUE, 4)
+
+            self.imei_qr = lv.qrcode(self.imei, 150, fg_color, bg_color)
+            self.imei_qr.center()
+            # Add a border with bg_color
+            self.imei_qr.set_style_border_color(bg_color, 0)
+            self.imei_qr.set_style_border_width(5, 0)
+
+
+            self.imei_label = lv.label(self.imei)
+            self.imei_label.set_pos(0, 280)
+            self.imei_label.set_size(240, 20)
+            self.imei_label.set_text(" ")
+            self.imei_label.set_long_mode(lv.label.LONG.WRAP)
+            self.imei_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            self.imei_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+        self.imei = EventMesh.publish(constants.EVENT.GET_IMEI)
+        self.imei_qr_data = str(self.imei)
+        self.imei_qr.update(self.imei_qr_data,len(self.imei_qr_data))
+        self.imei_label.set_text(self.imei)
 
-        imei = EventMesh.publish(constants.EVENT.GET_IMEI)
-        imei_qr_data = str(imei)
-        imei_qr.update(imei_qr_data,len(imei_qr_data))
-        imei_label.set_text(imei)
-
+    def Close(self):
+        self.meta.delete()
+        self.meta = None
     def done_return(self):
         EventMesh.publish("load_screen", {"screen": "setting"})
 
@@ -1183,11 +865,44 @@ class AppScreen(Screen):
 
     def __init__(self):
         super().__init__()
-        self.meta = app_screen
+        self.meta = None
     def initialization(self):
+        if self.meta == None: 
+            self.meta = lv.obj()
+            self.meta.center()
+            self.meta.set_size(240, 320)
+            self.meta.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.app_img = lv.img(self.meta)
+            self.app_img.set_pos(int(20),int(40))
+            self.app_img.set_size(200,200)
+            self.app_img.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+            self.app_img.add_flag(lv.obj.FLAG.CLICKABLE)
+            self.app_img.set_src("E:/static/IMAGE_APP_QR_CODE.png")
+            self.app_img.add_style(style_screen, lv.PART.MAIN|lv.STATE.DEFAULT)
+            # app_qr = lv.qrcode(imei, 150, fg_color, bg_color)
+            # app_qr.center()
+            # Add a border with bg_color
+            # app_qr.set_style_border_color(bg_color, 0)
+            # app_qr.set_style_border_width(5, 0)
+            # app_qr_data = str("https://fangzoudiu.xcloudtech.com/xiao_jian")
+            # app_qr.update(app_qr_data,len(app_qr_data))
+
+            self.app_label = lv.label(self.meta )
+            self.app_label.set_pos(0, 280)
+            self.app_label.set_size(240, 20)
+            self.app_label.set_text(" ")
+            self.app_label.set_long_mode(lv.label.LONG.WRAP)
+            self.app_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            self.app_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
         imei = EventMesh.publish(constants.EVENT.GET_IMEI)
-        app_label.set_text(imei)
-    
+        self.app_label.set_text(imei)
+
+    def Close(self):
+        self.meta.delete()
+        self.meta = None
+
     def done_return(self):
         EventMesh.publish("load_screen", {"screen": "setting"})
 
@@ -1196,70 +911,74 @@ class AppScreen(Screen):
         
     def btn8_press(self):
         EventMesh.publish("load_screen", {"screen": "setting"})
-# -------------------------------------------brightness screen----------------------------------------------------------
-brightness_screen = lv.obj()
-brightness = lv.obj(brightness_screen)
-brightness.center()
-brightness.set_size(240, 320)
-brightness.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-
-brightness_title = lv.label(brightness)
-brightness_title.set_pos(0, 10)
-brightness_title.set_size(240, 40)
-brightness_title.set_text("屏幕调节")
-brightness_title.set_long_mode(lv.label.LONG.WRAP)
-brightness_title.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-brightness_title.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-brightness_label1 = lv.label(brightness)
-brightness_label1.set_pos(10, 70)
-brightness_label1.set_size(230, 40)
-brightness_label1.set_text("亮度:")
-brightness_label1.set_long_mode(lv.label.LONG.WRAP)
-brightness_label1.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0)
-brightness_label1.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-brightness_bar = lv.bar(brightness)
-brightness_bar.set_pos(20, 120)
-brightness_bar.set_size(200, 15)
-brightness_bar.set_style_anim_time(1000, lv.PART.INDICATOR | lv.STATE.DEFAULT)
-brightness_bar.set_mode(lv.bar.MODE.NORMAL)
-brightness_bar.set_value(50, lv.ANIM.OFF)
-brightness_bar.add_style(style_bar, lv.PART.MAIN | lv.STATE.DEFAULT)
-brightness_bar.add_style(style_bar_indic, lv.PART.INDICATOR | lv.STATE.DEFAULT)
-
-brightness_reduce_imgbtn = lv.img(brightness)
-brightness_reduce_imgbtn.set_pos(5, 150)
-brightness_reduce_imgbtn.set_size(110, 46)
-brightness_reduce_imgbtn.add_flag(lv.obj.FLAG.CLICKABLE)
-
-brightness_reduce_imgbtn.set_src("E:/static/reduce_btn.png")
-
-brightness_reduce_imgbtn.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-
-brightness_add_imgbtn = lv.img(brightness)
-brightness_add_imgbtn.set_pos(125, 150)
-brightness_add_imgbtn.set_size(110, 46)
-brightness_add_imgbtn.add_flag(lv.obj.FLAG.CLICKABLE)
-brightness_add_imgbtn.set_src("E:/static/add_btn.png")
-brightness_add_imgbtn.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+
 
 class BrightnessScreen(Screen):
     NAME = "brightness"
-
+    #屏幕设置
     def __init__(self):
         super().__init__()
         self.level = 0
-        self.meta = brightness_screen
-        brightness_add_imgbtn.add_event_cb(lambda e: self.add_level(e),
-                                     lv.EVENT.CLICKED, None)
-        brightness_reduce_imgbtn.add_event_cb(lambda e: self.reduce_level(e),
-                                     lv.EVENT.CLICKED, None)
+        self.meta = None
+        
     def initialization(self):
+        if self.meta == None:
+            self.meta = lv.obj()
+            self.brightness = lv.obj(self.meta)
+            self.brightness.center()
+            self.brightness.set_size(240, 320)
+            self.brightness.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+
+            self.brightness_title = lv.label(self.brightness)
+            self.brightness_title.set_pos(0, 10)
+            self.brightness_title.set_size(240, 40)
+            self.brightness_title.set_text("屏幕调节")
+            self.brightness_title.set_long_mode(lv.label.LONG.WRAP)
+            self.brightness_title.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            self.brightness_title.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.brightness_label1 = lv.label(self.brightness)
+            self.brightness_label1.set_pos(10, 70)
+            self.brightness_label1.set_size(230, 40)
+            self.brightness_label1.set_text("亮度:")
+            self.brightness_label1.set_long_mode(lv.label.LONG.WRAP)
+            self.brightness_label1.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0)
+            self.brightness_label1.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.brightness_bar = lv.bar(self.brightness)
+            self.brightness_bar.set_pos(20, 120)
+            self.brightness_bar.set_size(200, 15)
+            self.brightness_bar.set_style_anim_time(1000, lv.PART.INDICATOR | lv.STATE.DEFAULT)
+            self.brightness_bar.set_mode(lv.bar.MODE.NORMAL)
+            self.brightness_bar.set_value(50, lv.ANIM.OFF)
+            self.brightness_bar.add_style(style_bar, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.brightness_bar.add_style(style_bar_indic, lv.PART.INDICATOR | lv.STATE.DEFAULT)
+
+            self.brightness_reduce_imgbtn = lv.img(self.brightness)
+            self.brightness_reduce_imgbtn.set_pos(5, 150)
+            self.brightness_reduce_imgbtn.set_size(110, 46)
+            self.brightness_reduce_imgbtn.add_flag(lv.obj.FLAG.CLICKABLE)
+
+            self.brightness_reduce_imgbtn.set_src("E:/static/reduce_btn.png")
+
+            self.brightness_reduce_imgbtn.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+
+            self.brightness_add_imgbtn = lv.img(self.brightness)
+            self.brightness_add_imgbtn.set_pos(125, 150)
+            self.brightness_add_imgbtn.set_size(110, 46)
+            self.brightness_add_imgbtn.add_flag(lv.obj.FLAG.CLICKABLE)
+            self.brightness_add_imgbtn.set_src("E:/static/add_btn.png")
+            self.brightness_add_imgbtn.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.brightness_add_imgbtn.add_event_cb(lambda e: self.add_level(e),
+                                     lv.EVENT.CLICKED, None)
+            self.brightness_reduce_imgbtn.add_event_cb(lambda e: self.reduce_level(e),
+                                        lv.EVENT.CLICKED, None)
+            
         self.level = EventMesh.publish("get_brightness_level")
         self.show_bar()
+
     def add_level(self, e):
         EventMesh.publish("push_add_brightness_level")
         self.level = EventMesh.publish("get_brightness_level")
@@ -1273,9 +992,12 @@ class BrightnessScreen(Screen):
     def show_bar(self):
         if self.level == None:
             self.level = 5
-        brightness_bar.set_value((100 // 10) * self.level, lv.ANIM.OFF)
+        self.brightness_bar.set_value((100 // 10) * self.level, lv.ANIM.OFF)
 
-    
+    def Close(self):
+        self.meta.delete()
+        self.meta = None
+        
     def done_return(self):
         EventMesh.publish("load_screen", {"screen": "setting"})
 
@@ -1291,10 +1013,55 @@ class VolumeScreen(Screen):
 
     def __init__(self):
         super().__init__()
-        self.meta = volume_screen
-        volume_phone_btn.add_event_cb(lambda e: self.load_screen(e, {"screen": "phonering"}), lv.EVENT.CLICKED, None)
-        volume_message_btn.add_event_cb(lambda e: self.load_screen(e, {"screen": "msgvolume"}), lv.EVENT.CLICKED, None)
-        volume_alarm_btn.add_event_cb(lambda e: self.load_screen(e, {"screen": "alarmvolume"}), lv.EVENT.CLICKED, None)
+        self.meta = None
+
+
+            # -------------------------------------------volume screen----------------------------------------------------------
+    def initialization(self):
+        if self.meta == None:
+            self.meta = lv.obj()
+            self.volume = lv.obj(self.meta)
+            self.volume.center()
+            self.volume.set_size(240, 320)
+            self.volume.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.volume_phone_btn = lv.btn(self.volume)
+            self.volume_phone_btn.set_size(240,40)
+            self.volume_phone_btn.set_pos(0,30)
+            self.volume_phone_btn.add_style(style_volume_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.volume_phone_label = lv.label(self.volume_phone_btn)
+            self.volume_phone_label.set_text("电话铃声")
+            self.volume_phone_label.align(lv.ALIGN.CENTER, 0, 0)
+            self.volume_phone_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.volume_alarm_btn = lv.btn(self.self.volume)
+            self.volume_alarm_btn.set_size(240,40)
+            self.volume_alarm_btn.set_pos(0,100)
+            self.volume_alarm_btn.add_style(style_volume_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.volume_alarm_label = lv.label(self.volume_alarm_btn)
+            self.volume_alarm_label.set_text("闹钟铃声")
+            self.volume_alarm_label.align(lv.ALIGN.CENTER, 0, 0)
+            self.volume_alarm_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.volume_message_btn = lv.btn(self.volume)
+            self.volume_message_btn.set_size(240,40)
+            self.volume_message_btn.set_pos(0,170)
+            self.volume_message_btn.add_style(style_volume_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.volume_message_label = lv.label(self.volume_message_btn)
+            self.volume_message_label.set_text("消息铃声")
+            self.volume_message_label.align(lv.ALIGN.CENTER, 0, 0)
+            self.volume_message_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.volume_phone_btn.add_event_cb(lambda e: self.load_screen(e, {"screen": "phonering"}), lv.EVENT.CLICKED, None)
+            self.volume_message_btn.add_event_cb(lambda e: self.load_screen(e, {"screen": "msgvolume"}), lv.EVENT.CLICKED, None)
+            self.volume_alarm_btn.add_event_cb(lambda e: self.load_screen(e, {"screen": "alarmvolume"}), lv.EVENT.CLICKED, None)
+
+    def Close(self):
+        self.meta.delete()
+        self.meta = None
 
     def done_return(self):
         EventMesh.publish("load_screen", {"screen": "setting"})
@@ -1313,13 +1080,65 @@ class PhoneringScreen(Screen):
     def __init__(self):
         super().__init__()
         self.level = 0
-        self.meta = phonering_screen
-        phonering_add_imgbtn.add_event_cb(lambda e: self.add_level(e),
-                                     lv.EVENT.CLICKED, None)
-        phonering_reduce_imgbtn.add_event_cb(lambda e: self.reduce_level(e),
+        self.meta = None
+        
+    def initialization(self):
+        if self.meta == None:
+            self.meta = lv.obj()
+            self.phonering = lv.obj(self.meta)
+            self.phonering.center()
+            self.phonering.set_size(240, 320)
+            self.phonering.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.phonering_title = lv.label(self.phonering)
+            self.phonering_title.set_pos(0, 10)
+            self.phonering_title.set_size(240, 40)
+            self.phonering_title.set_text("电话铃声")
+            self.phonering_title.set_long_mode(lv.label.LONG.WRAP)
+            self.phonering_title.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            self.phonering_title.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.phonering_label1 = lv.label(self.phonering)
+            self.phonering_label1.set_pos(10, 70)
+            self.phonering_label1.set_size(230, 40)
+            self.phonering_label1.set_text("电话铃声:")
+            self.phonering_label1.set_long_mode(lv.label.LONG.WRAP)
+            self.phonering_label1.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0)
+            self.phonering_label1.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.phonering_bar = lv.bar(self.phonering)
+            self.phonering_bar.set_pos(20, 120)
+            self.phonering_bar.set_size(200, 15)
+            self.phonering_bar.set_style_anim_time(1000, lv.PART.INDICATOR | lv.STATE.DEFAULT)
+            self.phonering_bar.set_mode(lv.bar.MODE.NORMAL)
+            self.phonering_bar.set_value(50, lv.ANIM.OFF)
+            self.phonering_bar.add_style(style_bar, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.phonering_bar.add_style(style_bar_indic, lv.PART.INDICATOR | lv.STATE.DEFAULT)
+
+            self.phonering_reduce_imgbtn = lv.img(self.phonering)
+            self.phonering_reduce_imgbtn.set_pos(0, 150)
+            self.phonering_reduce_imgbtn.set_size(110, 46)
+            self.phonering_reduce_imgbtn.add_flag(lv.obj.FLAG.CLICKABLE)
+            self.phonering_reduce_imgbtn.set_src("E:/static/reduce_btn.png")
+            self.phonering_reduce_imgbtn.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+
+            self.phonering_add_imgbtn = lv.img(self.phonering)
+            self.phonering_add_imgbtn.set_pos(120, 150)
+            self.phonering_add_imgbtn.set_size(110, 46)
+            self.phonering_add_imgbtn.add_flag(lv.obj.FLAG.CLICKABLE)
+
+            self.phonering_add_imgbtn.set_src("E:/static/add_btn.png")
+
+            self.phonering_add_imgbtn.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.phonering_add_imgbtn.add_event_cb(lambda e: self.add_level(e),
                                      lv.EVENT.CLICKED, None)
-        phonering_add_imgbtn.set_ext_click_area(20)
-        phonering_reduce_imgbtn.set_ext_click_area(20)
+            self.phonering_reduce_imgbtn.add_event_cb(lambda e: self.reduce_level(e),
+                                        lv.EVENT.CLICKED, None)
+            self.phonering_add_imgbtn.set_ext_click_area(20)
+            self.phonering_reduce_imgbtn.set_ext_click_area(20)
+        self.level = EventMesh.publish("get_phonering_level")
+        self.show_bar()
 
     def add_level(self, e):
         EventMesh.publish("push_add_phonering_level")
@@ -1332,11 +1151,11 @@ class PhoneringScreen(Screen):
         self.show_bar()
 
     def show_bar(self):
-        phonering_bar.set_value((100 // 7) * self.level, lv.ANIM.OFF)
+        self.phonering_bar.set_value((100 // 7) * self.level, lv.ANIM.OFF)
 
-    def initialization(self):
-        self.level = EventMesh.publish("get_phonering_level")
-        self.show_bar()
+    def Close(self):
+        self.meta.delete()
+        self.meta = None
 
     def done_return(self):
         EventMesh.publish("load_screen", {"screen": "volume"})
@@ -1360,11 +1179,67 @@ class AlarmvolumeScreen(Screen):
     def __init__(self):
         super().__init__()
         self.level = 0
-        self.meta = alarmvolume_screen
-        alarmvolume_add_imgbtn.add_event_cb(lambda e: self.add_level(e),
-                                     lv.EVENT.CLICKED, None)
-        alarmvolume_reduce_imgbtn.add_event_cb(lambda e: self.reduce_level(e),
-                                     lv.EVENT.CLICKED, None)
+        self.meta = None
+        
+    def initialization(self):
+        if self.meta == None:
+        # -------------------------------------------alarmvolume screen----------------------------------------------------------
+            self.meta = lv.obj()
+            self.alarmvolume = lv.obj(self.meta)
+            self.alarmvolume.center()
+            self.alarmvolume.set_size(240, 320)
+            self.alarmvolume.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.alarmvolume_title = lv.label(self.alarmvolume)
+            self.alarmvolume_title.set_pos(0, 10)
+            self.alarmvolume_title.set_size(240, 40)
+            self.alarmvolume_title.set_text("闹钟铃声")
+            self.alarmvolume_title.set_long_mode(lv.label.LONG.WRAP)
+            self.alarmvolume_title.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            self.alarmvolume_title.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.alarmvolume_label1 = lv.label(self.alarmvolume)
+            self.alarmvolume_label1.set_pos(10, 70)
+            self.alarmvolume_label1.set_size(230, 40)
+            self.alarmvolume_label1.set_text("闹钟铃声:")
+            self.alarmvolume_label1.set_long_mode(lv.label.LONG.WRAP)
+            self.alarmvolume_label1.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0)
+            self.alarmvolume_label1.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.alarmvolume_bar = lv.bar(self.alarmvolume)
+            self.alarmvolume_bar.set_pos(20, 120)
+            self.alarmvolume_bar.set_size(200, 15)
+            self.alarmvolume_bar.set_style_anim_time(1000, lv.PART.INDICATOR | lv.STATE.DEFAULT)
+            self.alarmvolume_bar.set_mode(lv.bar.MODE.NORMAL)
+            self.alarmvolume_bar.set_value(50, lv.ANIM.OFF)
+            self.alarmvolume_bar.add_style(style_bar, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.alarmvolume_bar.add_style(style_bar_indic, lv.PART.INDICATOR | lv.STATE.DEFAULT)
+
+            self.alarmvolume_reduce_imgbtn = lv.img(self.alarmvolume)
+            self.alarmvolume_reduce_imgbtn.set_pos(5, 150)
+            self.alarmvolume_reduce_imgbtn.set_size(110, 46)
+            self.alarmvolume_reduce_imgbtn.add_flag(lv.obj.FLAG.CLICKABLE)
+
+            self.alarmvolume_reduce_imgbtn.set_src("E:/static/reduce_btn.png")
+
+            self.alarmvolume_reduce_imgbtn.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+
+            self.alarmvolume_add_imgbtn = lv.img(self.alarmvolume)
+            self.alarmvolume_add_imgbtn.set_pos(125, 150)
+            self.alarmvolume_add_imgbtn.set_size(110, 46)
+            self.alarmvolume_add_imgbtn.add_flag(lv.obj.FLAG.CLICKABLE)
+
+            self.alarmvolume_add_imgbtn.set_src("E:/static/add_btn.png")
+            self.alarmvolume_add_imgbtn.add_event_cb(lambda e: self.add_level(e),
+                                        lv.EVENT.CLICKED, None)
+            self.alarmvolume_reduce_imgbtn.add_event_cb(lambda e: self.reduce_level(e),
+                                        lv.EVENT.CLICKED, None)
+        
+        self.alarmvolume_add_imgbtn.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+        self.level = EventMesh.publish("get_alarmvolume_level")
+        self.show_bar()
+        
 
     def add_level(self, e):
         EventMesh.publish("push_add_alarmvolume_level")
@@ -1377,12 +1252,12 @@ class AlarmvolumeScreen(Screen):
         self.show_bar()
 
     def show_bar(self):
-        alarmvolume_bar.set_value((100 // 7) * self.level, lv.ANIM.OFF)
+        self.alarmvolume_bar.set_value((100 // 7) * self.level, lv.ANIM.OFF)
+
+    def Close(self):
+        self.meta.delete()
+        self.meta = None
 
-    def initialization(self):
-        self.level = EventMesh.publish("get_alarmvolume_level")
-        self.show_bar()
-    
     def done_return(self):
         EventMesh.publish("load_screen", {"screen": "volume"})
 
@@ -1400,12 +1275,68 @@ class MsgvolumeScreen(Screen):
     def __init__(self):
         super().__init__()
         self.level = 0
-        self.meta = msgvolume_screen
-        msgvolume_add_imgbtn.add_event_cb(lambda e: self.add_level(e),
+        self.meta = None
+        
+    def initialization(self):
+        if self.meta == None:
+            # -------------------------------------------msgvolume screen----------------------------------------------------------
+            self.meta = lv.obj()
+            self.msgvolume = lv.obj(self.meta)
+            self.msgvolume.center()
+            self.msgvolume.set_size(240, 320)
+            self.msgvolume.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.msgvolume_title = lv.label(self.msgvolume)
+            self.msgvolume_title.set_pos(0, 10)
+            self.msgvolume_title.set_size(240, 40)
+            self.msgvolume_title.set_text("消息铃声")
+            self.msgvolume_title.set_long_mode(lv.label.LONG.WRAP)
+            self.msgvolume_title.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            self.msgvolume_title.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.msgvolume_label1 = lv.label(self.msgvolume)
+            self.msgvolume_label1.set_pos(10, 70)
+            self.msgvolume_label1.set_size(230, 40)
+            self.msgvolume_label1.set_text("消息铃声:")
+            self.msgvolume_label1.set_long_mode(lv.label.LONG.WRAP)
+            self.msgvolume_label1.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0)
+            self.msgvolume_label1.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.msgvolume_bar = lv.bar(self.msgvolume)
+            self.msgvolume_bar.set_pos(20, 120)
+            self.msgvolume_bar.set_size(200, 15)
+            self.msgvolume_bar.set_style_anim_time(1000, lv.PART.INDICATOR | lv.STATE.DEFAULT)
+            self.msgvolume_bar.set_mode(lv.bar.MODE.NORMAL)
+            self.msgvolume_bar.set_value(50, lv.ANIM.OFF)
+            self.msgvolume_bar.add_style(style_bar, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.msgvolume_bar.add_style(style_bar_indic, lv.PART.INDICATOR | lv.STATE.DEFAULT)
+
+            self.msgvolume_reduce_imgbtn = lv.img(self.msgvolume)
+            self.msgvolume_reduce_imgbtn.set_pos(5, 150)
+            self.msgvolume_reduce_imgbtn.set_size(110, 46)
+            self.msgvolume_reduce_imgbtn.add_flag(lv.obj.FLAG.CLICKABLE)
+
+            self.msgvolume_reduce_imgbtn.set_src("E:/static/reduce_btn.png")
+
+            self.msgvolume_reduce_imgbtn.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+
+            self.msgvolume_add_imgbtn = lv.img(self.msgvolume)
+            self.msgvolume_add_imgbtn.set_pos(125, 150)
+            self.msgvolume_add_imgbtn.set_size(110, 46)
+            self.msgvolume_add_imgbtn.add_flag(lv.obj.FLAG.CLICKABLE)
+
+            self.msgvolume_add_imgbtn.set_src("E:/static/add_btn.png")
+
+            self.msgvolume_add_imgbtn.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.msgvolume_add_imgbtn.add_event_cb(lambda e: self.add_level(e),
                                      lv.EVENT.CLICKED, None)
-        msgvolume_reduce_imgbtn.add_event_cb(lambda e: self.reduce_level(e),
+            self.msgvolume_reduce_imgbtn.add_event_cb(lambda e: self.reduce_level(e),
                                      lv.EVENT.CLICKED, None)
 
+        self.level = EventMesh.publish("get_msgvolume_level")
+        self.show_bar()
+
     def add_level(self, e):
         EventMesh.publish("push_add_msgvolume_level")
         self.level = EventMesh.publish("get_msgvolume_level")
@@ -1417,11 +1348,11 @@ class MsgvolumeScreen(Screen):
         self.show_bar()
 
     def show_bar(self):
-        msgvolume_bar.set_value((100 // 7) * self.level, lv.ANIM.OFF)
+        self.msgvolume_bar.set_value((100 // 7) * self.level, lv.ANIM.OFF)
 
-    def initialization(self):
-        self.level = EventMesh.publish("get_msgvolume_level")
-        self.show_bar()
+    def Close(self):
+        self.meta.delete()
+        self.meta = None
     
     def done_return(self):
         EventMesh.publish("load_screen", {"screen": "volume"})
@@ -1434,70 +1365,73 @@ class MsgvolumeScreen(Screen):
 
 
 
-#-----------------------------------------Total--volum-------------------------------
-
-volume_adjust_screen = lv.obj()
-volume_adjust_volume = lv.obj(volume_adjust_screen)
-volume_adjust_volume.center()
-volume_adjust_volume.set_size(240, 320)
-volume_adjust_volume.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-totalvolume_title = lv.label(volume_adjust_volume)
-totalvolume_title.set_pos(0, 10)
-totalvolume_title.set_size(240, 40)
-totalvolume_title.set_text("铃声调节")
-totalvolume_title.set_long_mode(lv.label.LONG.WRAP)
-totalvolume_title.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-totalvolume_title.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-totalvolume_label1 = lv.label(volume_adjust_volume)
-totalvolume_label1.set_pos(10, 70)
-totalvolume_label1.set_size(230, 40)
-totalvolume_label1.set_text("铃声:")
-totalvolume_label1.set_long_mode(lv.label.LONG.WRAP)
-totalvolume_label1.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0)
-totalvolume_label1.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-totalvolume_bar = lv.bar(volume_adjust_volume)
-totalvolume_bar.set_pos(20, 120)
-totalvolume_bar.set_size(200, 15)
-totalvolume_bar.set_style_anim_time(1000, lv.PART.INDICATOR | lv.STATE.DEFAULT)
-totalvolume_bar.set_mode(lv.bar.MODE.NORMAL)
-totalvolume_bar.set_value(50, lv.ANIM.OFF)
-totalvolume_bar.add_style(style_bar, lv.PART.MAIN | lv.STATE.DEFAULT)
-totalvolume_bar.add_style(style_bar_indic, lv.PART.INDICATOR | lv.STATE.DEFAULT)
-
-totalvolume_reduce_imgbtn = lv.img(volume_adjust_volume)
-totalvolume_reduce_imgbtn.set_pos(5, 150)
-totalvolume_reduce_imgbtn.set_size(110, 46)
-totalvolume_reduce_imgbtn.add_flag(lv.obj.FLAG.CLICKABLE)
-totalvolume_reduce_imgbtn.set_src("E:/static/reduce_btn.png")
-totalvolume_reduce_imgbtn.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-
-totalvolume_add_imgbtn = lv.img(volume_adjust_volume)
-totalvolume_add_imgbtn.set_pos(125, 150)
-totalvolume_add_imgbtn.set_size(110, 46)
-totalvolume_add_imgbtn.add_flag(lv.obj.FLAG.CLICKABLE)
-totalvolume_add_imgbtn.set_src("E:/static/add_btn.png")
-totalvolume_add_imgbtn.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+
 
 class totalvolumeScreen(Screen):
     NAME = "totalvolume"
 
     def __init__(self):
         super().__init__()
-        self.meta = volume_adjust_screen
-        totalvolume_add_imgbtn.add_event_cb(lambda e: self.add_volum_size(e),
-                                     lv.EVENT.CLICKED, None)
-        totalvolume_reduce_imgbtn.add_event_cb(lambda e: self.reduce_volum_size(e),
-                                     lv.EVENT.CLICKED, None)
+        self.meta = None
+        
         self.read_data = {}
         self.volum_size = 8
         self.aud = audio.Audio(0)
         self.aud.set_pa(Pin.GPIO29)
         
     def initialization(self):
+        #-----------------------------------------Total--volum-------------------------------
+        if self.meta == None:
+            self.meta = lv.obj()
+            self.volume_adjust_volume = lv.obj(self.meta)
+            self.volume_adjust_volume.center()
+            self.volume_adjust_volume.set_size(240, 320)
+            self.volume_adjust_volume.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.totalvolume_title = lv.label(self.volume_adjust_volume)
+            self.totalvolume_title.set_pos(0, 10)
+            self.totalvolume_title.set_size(240, 40)
+            self.totalvolume_title.set_text("铃声调节")
+            self.totalvolume_title.set_long_mode(lv.label.LONG.WRAP)
+            self.totalvolume_title.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+            self.totalvolume_title.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.totalvolume_label1 = lv.label(self.volume_adjust_volume)
+            self.totalvolume_label1.set_pos(10, 70)
+            self.totalvolume_label1.set_size(230, 40)
+            self.totalvolume_label1.set_text("铃声:")
+            self.totalvolume_label1.set_long_mode(lv.label.LONG.WRAP)
+            self.totalvolume_label1.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0)
+            self.totalvolume_label1.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+            self.totalvolume_bar = lv.bar(self.volume_adjust_volume)
+            self.totalvolume_bar.set_pos(20, 120)
+            self.totalvolume_bar.set_size(200, 15)
+            self.totalvolume_bar.set_style_anim_time(1000, lv.PART.INDICATOR | lv.STATE.DEFAULT)
+            self.totalvolume_bar.set_mode(lv.bar.MODE.NORMAL)
+            self.totalvolume_bar.set_value(50, lv.ANIM.OFF)
+            self.totalvolume_bar.add_style(style_bar, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.totalvolume_bar.add_style(style_bar_indic, lv.PART.INDICATOR | lv.STATE.DEFAULT)
+
+            self.totalvolume_reduce_imgbtn = lv.img(self.volume_adjust_volume)
+            self.totalvolume_reduce_imgbtn.set_pos(5, 150)
+            self.totalvolume_reduce_imgbtn.set_size(110, 46)
+            self.totalvolume_reduce_imgbtn.add_flag(lv.obj.FLAG.CLICKABLE)
+            self.totalvolume_reduce_imgbtn.set_src("E:/static/reduce_btn.png")
+            self.totalvolume_reduce_imgbtn.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+
+            self.totalvolume_add_imgbtn = lv.img(self.volume_adjust_volume)
+            self.totalvolume_add_imgbtn.set_pos(125, 150)
+            self.totalvolume_add_imgbtn.set_size(110, 46)
+            self.totalvolume_add_imgbtn.add_flag(lv.obj.FLAG.CLICKABLE)
+            self.totalvolume_add_imgbtn.set_src("E:/static/add_btn.png")
+            self.totalvolume_add_imgbtn.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+            self.totalvolume_add_imgbtn.add_event_cb(lambda e: self.add_volum_size(e),
+                                     lv.EVENT.CLICKED, None)
+            self.totalvolume_reduce_imgbtn.add_event_cb(lambda e: self.reduce_volum_size(e),
+                                            lv.EVENT.CLICKED, None)
+
         self.read_data = EventMesh.publish("get_storage_data")
         print("self.read_data:{}".format(self.read_data))
         num = EventMesh.publish("get_volum_size")
@@ -1520,7 +1454,7 @@ class totalvolumeScreen(Screen):
         self.show_bar(1)
 
     def show_bar(self,msg):
-        totalvolume_bar.set_value((100 // 11) * self.volum_size, lv.ANIM.OFF)
+        self.totalvolume_bar.set_value((100 // 11) * self.volum_size, lv.ANIM.OFF)
         if msg == 1:
             self.read_data = EventMesh.publish("get_storage_data")
             self.read_data["volum"] = self.volum_size
@@ -1534,7 +1468,8 @@ class totalvolumeScreen(Screen):
  
     def Close(self):
         self.aud.stop()
-
+        self.meta.delete()
+        self.meta = None
     def done_return(self):
         self.aud.stop()
         EventMesh.publish("load_screen", {"screen": "setting"})