diff --git a/src/weather_manager.py b/src/weather_manager.py index 7183e47b..4a37eac2 100644 --- a/src/weather_manager.py +++ b/src/weather_manager.py @@ -39,9 +39,9 @@ class WeatherManager: # Layout constants self.PADDING = 1 self.ICON_SIZE = { - 'large': 24, - 'medium': 18, - 'small': 12 + 'large': 28, + 'medium': 20, + 'small': 14 } self.COLORS = { 'text': (255, 255, 255), @@ -359,9 +359,13 @@ class WeatherManager: font=self.display_manager.small_font, fill=self.COLORS['extra_dim']) - # Draw weather icon in middle - icon_size = self.ICON_SIZE['medium'] - icon_y = self.display_manager.matrix.height // 3 # Position icon in upper third + # Draw weather icon centered vertically between top/bottom text + icon_size = self.ICON_SIZE['medium'] # 20 + top_text_height = 8 # Approx height reservation for top text + bottom_text_y = self.display_manager.matrix.height - 8 # Starting Y for bottom text + available_height_for_icon = bottom_text_y - top_text_height + # Ensure calculated y is not negative if space is very tight + icon_y = max(top_text_height, top_text_height + (available_height_for_icon - icon_size) // 2) icon_x = center_x - icon_size // 2 WeatherIcons.draw_weather_icon(image, forecast['condition'], icon_x, icon_y, icon_size) @@ -424,9 +428,13 @@ class WeatherManager: font=self.display_manager.small_font, fill=self.COLORS['extra_dim']) - # Draw weather icon in middle - icon_size = self.ICON_SIZE['medium'] - icon_y = self.display_manager.matrix.height // 3 # Position icon in upper third + # Draw weather icon centered vertically between top/bottom text + icon_size = self.ICON_SIZE['medium'] # 20 + top_text_height = 8 # Approx height reservation for top text + bottom_text_y = self.display_manager.matrix.height - 8 # Starting Y for bottom text + available_height_for_icon = bottom_text_y - top_text_height + # Ensure calculated y is not negative if space is very tight + icon_y = max(top_text_height, top_text_height + (available_height_for_icon - icon_size) // 2) icon_x = center_x - icon_size // 2 WeatherIcons.draw_weather_icon(image, forecast['condition'], icon_x, icon_y, icon_size)