Gambar Kivy Splash Screen dengan efek fade

Saya ingin tahu cara membuat splash screen dengan kivy dan menampilkan gambar secara fade in selama beberapa detik.

Hal terbaik yang bisa saya lakukan adalah dengan kode ini:

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)

Ini menampilkan logo saya di layar dan menghilang setelah 3 detik tetapi menunggu aplikasi dimulai sehingga ketika aplikasi dimuat hanya ada jendela hitam.


person Etienne Prothon    schedule 11.05.2016    source sumber


Jawaban (1)


Android/iOS:

Splashscreen digunakan secara default pada python-untuk-android (presplash), di sana Anda dapat mengatur gambar apa pun yang Anda suka. Tidak tahu cara kerjanya di ios, tapi menurut saya ada splashscreen juga.


Windows/Linux/Mac/RPi:

Tidak ada hal seperti itu yang terjadi pada hal ini. Mungkin Anda dapat mengatur sesuatu dengan PyInstaller saat mengemas untuk OS, jika tidak, Anda harus membuatnya sendiri. Saya dapat merekomendasikan Anda menggunakan ScreenManager dan Transitions-nya dikombinasikan dengan Clock atau bahkan mungkin Animation - tergantung pada apa yang Anda ingin gambar itu lakukan. Contoh

Untuk menyetel durasi transisi, lihat di sini , yang seharusnya dapat diakses dalam transisi, mis. FadeTransition(duration=1.5)

person Peter Badida    schedule 11.05.2016
comment
Oke, itulah yang saya pikirkan :/ Saya telah menambahkan kode yang memperbesar aplikasi logo saya selama 3 detik dan menghilang. Saya membiarkan pertanyaan terbuka apakah suatu hari kivy mengizinkan kita membuat layar splash yang sebenarnya. Terima kasih. - person Etienne Prothon; 12.05.2016