Unable to add full-screen bitmap to Pebble due to window size

I am using Pebble SDK 2 and am facing graphics issues.

I am trying to add a full-screen drawing with dimensions of 144 x 168, however, when I do this, the bottom is cropped.

[picture]

Consequence: the root layer has dimensions 144 x 152, and not 144 x 168 (overall dimensions of the pebbles). I set the window to full screen before adding a bitmap and calling window_stack_push , so the status bar should not be a problem (although the dimensions of the status bar supposedly correspond to a space that I am missing).

Code below:

 void handle_init(void) { s_main_window = window_create(); window_set_fullscreen(s_main_window, true); window_set_window_handlers(s_main_window, (WindowHandlers) { .load = main_window_load, .unload = main_window_unload }); const bool animated = true; window_set_click_config_provider(s_main_window, click_config_provider); window_stack_push(s_main_window, animated); } static void main_window_load(Window *window) { // Create GBitmap, then set to created BitmapLayer s_background_bitmap = gbitmap_create_with_resource(RESOURCE_ID_CHILL_BG5); s_background_layer = bitmap_layer_create(GRect(0, 0, 144, 168)); bitmap_layer_set_bitmap(s_background_layer, s_background_bitmap); layer_add_child(window_get_root_layer(window), bitmap_layer_get_layer(s_background_layer)); } 

Updated code:

 static void breathe_window_load(Window *window) { Layer *window_layer = window_get_root_layer(window); // Create GBitmap, then set to created BitmapLayer s_background_bitmap_3 = gbitmap_create_with_resource(RESOURCE_ID_CHILL_BG6); s_background_layer_3 = bitmap_layer_create(GRect(0, -16, 144, 168)); bitmap_layer_set_bitmap(s_background_layer_3, s_background_bitmap_3); layer_add_child(window_get_root_layer(window), bitmap_layer_get_layer(s_background_layer_3)); } static void breathe_window_unload(Window *window) { gbitmap_destroy(s_background_bitmap_3); bitmap_layer_destroy(s_background_layer_3); animation_unschedule_all(); window_destroy(s_window_2); } static void up_click_handler(ClickRecognizerRef recognizer, void *context) { s_window_2 = window_create(); window_set_window_handlers(s_window_2, (WindowHandlers) { .load = breathe_window_load, .unload = breathe_window_unload }); const bool animated = true; window_stack_push(s_window_2, animated); next_animation(); } 
+6
source share

Source: https://habr.com/ru/post/985977/


All Articles