Launcher: smarter image width layout for portrait displays

This commit is contained in:
Thomas Farstrike
2026-02-11 21:18:10 +01:00
parent 9ef1cc8e7b
commit c2312ca0cb
2 changed files with 12 additions and 17 deletions
@@ -1,19 +1,10 @@
# bin files:
# All icons took: 1085ms
# All icons took: 1051ms
# All icons took: 1032ms
# All icons took: 1118ms
# png files:
# All icons took: 1258ms
# All icons took: 1457ms
# All icons took: 1250ms
# Most of this time is actually spent reading and parsing manifests.
import lvgl as lv
from mpos import AppearanceManager, AppManager, Activity, DisplayMetrics
import math
import time
import uhashlib
import ubinascii
from mpos import AppearanceManager, AppManager, Activity, DisplayMetrics
class Launcher(Activity):
def __init__(self):
@@ -28,7 +19,7 @@ class Launcher(Activity):
main_screen.set_style_border_width(0, lv.PART.MAIN)
main_screen.set_style_radius(0, lv.PART.MAIN)
main_screen.set_pos(0, AppearanceManager.NOTIFICATION_BAR_HEIGHT)
main_screen.set_style_pad_hor(DisplayMetrics.pct_of_width(2), lv.PART.MAIN)
main_screen.set_style_pad_hor(0, lv.PART.MAIN)
main_screen.set_style_pad_ver(AppearanceManager.NOTIFICATION_BAR_HEIGHT, lv.PART.MAIN)
main_screen.set_flex_flow(lv.FLEX_FLOW.ROW_WRAP)
self.setContentView(main_screen)
@@ -87,7 +78,11 @@ class Launcher(Activity):
# Grid parameters
icon_size = 64
label_height = 24
iconcont_width = int(icon_size * 1.1)
width_margin = 25
icons_fit_width = math.floor((DisplayMetrics.width()-width_margin) / icon_size)
#print(f"{icons_fit_width} icons fit")
iconcont_width = int((DisplayMetrics.width()-width_margin) / icons_fit_width)
#print(f"{iconcont_width} iconcont_width")
iconcont_height = icon_size + label_height
for app in AppManager.get_app_list():
+4 -4
View File
@@ -14,12 +14,12 @@ TFT_HOR_RES=320
TFT_VER_RES=240
# Fri3d Camp 2024 Badge:
TFT_HOR_RES=296
TFT_VER_RES=240
#TFT_HOR_RES=296
#TFT_VER_RES=240
# Makerfabs / Matouch
#TFT_HOR_RES=240
#TFT_VER_RES=320
TFT_HOR_RES=240
TFT_VER_RES=320
# Bigger screen
#TFT_HOR_RES=640