You've already forked MicroPythonOS
mirror of
https://github.com/m5stack/MicroPythonOS.git
synced 2026-05-20 11:51:27 -07:00
imageview: add next and previous buttons
This commit is contained in:
@@ -10,18 +10,28 @@ class ImageView(Activity):
|
||||
#imagedir = "/home/user/Downloads/"
|
||||
#imagedir = "/home/user/images/"
|
||||
images = []
|
||||
image_nr = 0
|
||||
image_nr = None
|
||||
image_timer = None
|
||||
image = None
|
||||
|
||||
def onCreate(self):
|
||||
screen = lv.obj()
|
||||
self.label = lv.label(screen)
|
||||
self.label.set_text('Hello Images!')
|
||||
self.label.align(lv.ALIGN.TOP_MID,0,0)
|
||||
self.image = lv.image(screen)
|
||||
self.image.set_size(128, 128)
|
||||
self.image.align(lv.ALIGN.BOTTOM_MID,0,0)
|
||||
self.label = lv.label(screen)
|
||||
self.label.set_text('Hello Images!')
|
||||
self.label.align(lv.ALIGN.TOP_MID,0,0)
|
||||
self.next_button = lv.button(screen)
|
||||
self.next_button.align(lv.ALIGN.BOTTOM_RIGHT,0,0)
|
||||
self.next_button.add_event_cb(lambda e: self.show_next_image(),lv.EVENT.CLICKED,None)
|
||||
next_label = lv.label(self.next_button)
|
||||
next_label.set_text(">")
|
||||
self.prev_button = lv.button(screen)
|
||||
self.prev_button.align(lv.ALIGN.BOTTOM_LEFT,0,0)
|
||||
self.prev_button.add_event_cb(lambda e: self.show_prev_image(),lv.EVENT.CLICKED,None)
|
||||
prev_label = lv.label(self.prev_button)
|
||||
prev_label.set_text("<")
|
||||
self.setContentView(screen)
|
||||
|
||||
def onResume(self, screen):
|
||||
@@ -33,27 +43,41 @@ class ImageView(Activity):
|
||||
size = os.stat(fullname)[6]
|
||||
print(f"size: {size}")
|
||||
if size > 10 * 1024*1024:
|
||||
#if size > 60000:
|
||||
print(f"Skipping file of size {size}")
|
||||
continue
|
||||
self.images.append(fullname)
|
||||
self.image_timer = lv.timer_create(self.show_next_image, 1000, None)
|
||||
# Begin with one image:
|
||||
self.show_next_image()
|
||||
#self.image_timer = lv.timer_create(self.show_next_image, 1000, None)
|
||||
|
||||
def onStop(self, screen):
|
||||
if self.image_timer:
|
||||
print("ImageView: deleting image_timer")
|
||||
self.image_timer.delete()
|
||||
|
||||
def show_next_image(self, event):
|
||||
def show_prev_image(self, event=None):
|
||||
print("showing previous image...")
|
||||
if len(self.images) < 1:
|
||||
return
|
||||
if self.image_nr is None or self.image_nr == 0:
|
||||
self.image_nr = len(self.images) - 1
|
||||
else:
|
||||
self.image_nr = self.image_nr - 1
|
||||
name = self.images[self.image_nr]
|
||||
print(f"show_prev_image showing {name}")
|
||||
self.show_image(name)
|
||||
|
||||
def show_next_image(self, event=None):
|
||||
print("showing next image...")
|
||||
if len(self.images) < 1:
|
||||
return
|
||||
if self.image_nr >= len(self.images):
|
||||
if self.image_nr is None or self.image_nr >= len(self.images) - 1:
|
||||
self.image_nr = 0
|
||||
else:
|
||||
self.image_nr = self.image_nr + 1
|
||||
name = self.images[self.image_nr]
|
||||
print(f"show_next_image showing {name}")
|
||||
self.show_image(name)
|
||||
self.image_nr = self.image_nr + 1
|
||||
|
||||
def show_image(self, name):
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user