Проблема с размером элементов в приложении Kivy на Андроиде

Облазил весь интернет в поисках решения своей проблемы, но увы не нашел. Моя проблема выглядит следующим образом:

Приложение написано на Python с использованием фреймворка Kivy. На компе размеры всех элементов (кнопок, иконок, текста и т.д) отображаются верно, а на Андроиде - нет. То есть я не верно задал пропорции и мое приложение стало не кроссплатформенным. Я в своем приложении не использую KV файл. Все пропорции даны напрямую в py файле. Я понимаю что KV файл возможно удобнее, возможно правильнее и легче в использовании и понимании, но данное приложение начинал писать не я. Я лишь продолжил уже написанное. И к сожалению сейчас нет времени на то чтобы все переделывать под KV, поэтому я бы хотел решить данный вопрос просто видоизменив уже написанный код. Мои поиске в интернете привели меня к так называемым метрикам (kivy.metrics) с помощью которых можно управлять размерами элементов, но к сожалению мои попытки изменить код в соответствии с библиотекой kivy.metrics не дали результатов. Я прикрепил скрины с компа и с андроид телефона. Как видно с этих скринов на андроиде все элементы скапливаются в комок в нижней левой части экрана, что конечно не соответствует моим ожиданиям. Приложение состоит из множества страниц, но если я пойму как решить проблему на одной странице, то разберусь и со всеми остальными. Но беда в том чтобы я не делал - всё тщетно. Мое приложение все равно работает криво на андроиде. Прошу помочь с решением проблемы. Спасибо.

PC

Android

Я новичок в программирование в принципе, поэтому не стесняйтесь критиковать) Мой код ниже. Я попытался добавить padding и spacing для кнопок в pos_hint, чтобы они сохраняли пропорции, но никакого эффекта от этого я не увидел и причину понять не могу. Возможно я не там капаю.

from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.image import Image
from kivy.uix.button import Button
from kivy.core.window import Window
from kivy.uix.screenmanager import Screen
from kivy.core.audio import SoundLoader
from kivy.config import Config
from kivy.metrics import dp

Config.set('input', 'mouse', 'mouse,multitouch_on_demand')


class LanguagePage(Screen):
    def __init__(self, **kwargs):
        super(LanguagePage, self).__init__(**kwargs)
    

        im = Image(source='temp_logo.png')
        im.size_hint = (None, None)
        im.size = (dp(500), dp(500))
        im.pos_hint = {"center_x": 0.5, "center_y": 0.80}
        self.add_widget(im)

        app_text = Label(font_size=dp(16),
                          text="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor"
                               "\nincididunt ut labore et dolore magna"
                               "\n"
                               "\naliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco "
                               "\nlaboris nisi ut aliquip ex ea commodo consequat.",
                          color='white',
                          halign='center')
        app_text.pos_hint = {"center_x": 0.5, "center_y": 0.65}

        self.add_widget(app_text)
        button1 = Button(text='Button 1', background_color='06ecfc')
        button2 = Button(text='Button 2', background_color='06ecfc')
        button3 = Button(text='Button 3', background_color='FC9106')

        button1.size_hint = (None, None)
        button1.size = (dp(135), dp(30))
        button2.size_hint = (None, None)
        button2.size = (dp(135), dp(30))
        button3.size_hint = (None, None)
        button3.size = (dp(135), dp(30))
        button3.padding = (dp(135), dp(30))

        button1.pos_hint = {"center_x": 0.5, "center_y": 0.48, "spacing": 100, "padding": 200}
        button2.pos_hint = {"center_x": 0.5, "center_y": 0.42, "spacing": 100, "padding": 200}
        button3.pos_hint = {"center_x": 0.5, "center_y": 0.3, "spacing": 100, "padding": 200}


        button2.bind(on_press=self.screen_transition_2)
        button2.bind(on_press=self.btn_pressed)

        button3.bind(on_press=self.btn_pressed)
        button3.bind(on_press=self.quit_app)


        self.add_widget(button1)
        self.add_widget(button2)
        self.add_widget(button3)

        button1.bind(on_press=self.screen_transition)
        button1.bind(on_press=self.btn_pressed)

        self.music = SoundLoader.load('bg_music.mp3')
        self.music.loop = True
        self.music.play()

    def btn_pressed(self, instance):
        self.sound = SoundLoader.load('click.wav')
        self.sound.play()

    def screen_transition(self, *args):
        self.manager.current = 'third page'

    def screen_transition_2(self, *args):
        self.manager.current = 'next page'

    def quit_app(self, instance):
        App.get_running_app().stop()
        Window.close()

Ответы (0 шт):