見出し画像

Pythonで推し鑑賞スマホアプリを作る

このYoutubeで紹介されている小型ディスプレイ、普通にほしい!
けど、ミニマリストでもあるので、モノはあんまり増やしたくない。
でも、推し鑑賞はしたい!

スマホがあるじゃないか!

ということで、推し観賞用のアプリを作ります。
まずは、スマホアプリ開発環境のセットアップ。

スマホって、触っていないとスリープしちゃうので、スリープ禁止にします。
こちらのサイト様を参考にしました。

androidと書いてある通りandroid専用です。
iphoneは不明です。
ていうか、詳細わかってないからめちゃ苦戦した…

この時点でも推しの画像がずっと表示されるようになるので、これでも十分といえば十分です。
でも、それだけだとスライドショーアプリとか変わらんので、できる限りのアニメーションをつけていこうと思います。
とりあえず、現時点でのコード。
import整理していないのでこの時点ではこんなにいらんはず。

main.py

#!/home/shu/python/oshi/oshi_venv/bin/python
"""
機能:推し鑑賞用アプリ
"""
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.floatlayout import FloatLayout
from kivy.config import Config
from kivy.core.audio import SoundLoader
from kivy.properties import StringProperty
from kivy.utils import platform

# デバッグ用にPC上でもスマホみたいな縦長表示にする。
Config.set('graphics', 'width', '315')
Config.set('graphics', 'height', '600')

class MyRoot(BoxLayout):
    def init(self, **kwargs):
        super().init(**kwargs)

        # スリープモードを無効化
        if platform == 'android':
            from android.runnable import run_on_ui_thread
            from jnius import autoclass

            @run_on_ui_thread
            def prevent_sleep():
                PythonActivity = autoclass('org.kivy.android.PythonActivity')
                activity = PythonActivity.mActivity
                activity.getWindow().addFlags(128)  # FLAG_KEEP_SCREEN_ON

        prevent_sleep()

class Main(App):
    def build(self):
        return MyRoot()

""" 
機能:メイン関数 
注意:コールする関数名と.kvのファイル名を一致させる(大文字小文字は無視) 
"""
if name == 'main':
    Main().run()

main.kv

<MyRoot>:
orientation: 'vertical'
Image:
    allow_stretch: True
    keep_ratio: True
    source: "image/normal.png"
    size: self.parent.size
    pos: self.parent.pos

スリープすることなくずーっと画像が表示されます。
これだけでも十分癒やされます。

冥鳴ひまり推しです。

次回はちょっとしたアニメーションなどつけます。


いいなと思ったら応援しよう!

この記事が参加している募集