Изображение Kivy Splash Screen с эффектом затухания

Я хотел бы знать, как сделать заставку с kivy и отобразить изображение в течение нескольких секунд.

Лучшее, что я могу сделать, было с этим кодом:

class MyApp(App):

    def __init__(self, **kwargs):
        super(MyApp, self).__init__(**kwargs)
        self.splash_screen_image = Image(source='images/pyrat_icon.png', size=(0, 0))
        Clock.schedule_once(self.start_anim, .01)

    def build(self):
        self.main_widget = MainWidget()
        return self.main_widget

    def start_anim(self, dt):
        self.splash_screen_image.pos = (self.main_widget.center_x, self.main_widget.center_y)
        self.main_widget.add_widget(self.splash_screen_image)
        animation = Animation(x=self.main_widget.center_x - 35, y=self.main_widget.center_y - 35, height=70, width=70, d=2,
                              t='in_quad')
        animation.start(self.splash_screen_image)
        Clock.schedule_once(self.end_anim, 3)

    def end_anim(self, dt):
        self.main_widget.remove_widget(self.splash_screen_image)

Это отображает мой логотип на экране и исчезает через 3 секунды, но он ждет запуска приложения, поэтому, когда приложение загружается, появляется только черное окно.


person Etienne Prothon    schedule 11.05.2016    source источник


Ответы (1)


Android/iOS:

Экран-заставка используется по умолчанию в python-for-android (presplash), там вы можете установить любое понравившееся вам изображение. Не знаю, как это работает на ios, но думаю там тоже есть заставка.


Windows/Linux/Mac/RPi:

На этих такого нет. Возможно, вы можете установить что-то с помощью PyInstaller при упаковке для ОС, иначе вам нужно будет сделать это самостоятельно. Я могу порекомендовать вам использовать ScreenManager и его Transitions в сочетании с Clock или даже Animation — зависит от того, что вы хотите, чтобы это изображение делало. Пример

Чтобы установить длину перехода, посмотрите здесь , который должен быть доступен в переходах, например. FadeTransition(duration=1.5)

person Peter Badida    schedule 11.05.2016
comment
Хорошо, вот что я подумал: / Я добавил свой код, который увеличивает масштаб моего приложения с логотипом на 3 секунды и исчезает. Я оставляю открытым вопрос, позволит ли когда-нибудь киви сделать настоящую заставку. Спасибо. - person Etienne Prothon; 12.05.2016