2021年12月16日木曜日

Androidの伺か Clock Ghost 20211216

 Android端末の時計として使える、サンプルゴーストを作りました。

ファイルはこちら→ <SampleClockGhost>


私が知る限り、4体の時計表示ゴーストが既に存在しますが

Androidの伺かをベースウエアとして、時刻を正常表示できる

ゴーストがなかったのでサンプルとして公開いたします。


Android OS のバージョンアップが影響するのか

ウィジェットとして起動できる手持ちの端末が減ってきました。

2021/12/19 追記 : 現時点で Androidの伺かの

対象APIレベル(android:targetSdkVersion)=28 (Android 9) みたいです

その場合は、前面表示やライブ壁紙で代替することになります。

ライブ壁紙の場合、ユーザ設定に切り替えて壁紙位置と

背景として使う壁紙を調整すれば

そこそこ良いポジションにゴーストを表示できます。


■表示例■

Androidの伺か機能メニューにある、「前面表示に切り替え」を実行した場合です

Ukagaka Mascot app
Ukagaka Mascot app


ライブ壁紙に設定した場合です

Ukagaka Live Wallpaper
Ukagaka Live Wallpaper


Ukagaka Live Wallpaper
Ukagaka Live Wallpaper


■既存ソロゴーストへの導入方法■

時計は「うにゅう側」として動作しますので

ソロゴーストに、時計が相方として加わったイメージです。


時計に関するすべてのデータとスクリプト記述は、そのまま流用していただいても構いません。

ですが、さくら側に使用しているフリーシェルも流用なさる場合は

シェル作者である吉野桜様に、ご自身で連絡していただき流用可否のご確認お願いします

※2022/06時点で、作者様から「確認不要」とブログ回答頂いております。


では順を追って解説します。

▲既に存在するソロゴーストに、時計表示機能を追加するとのシナリオで説明を進めます

▲ファイル・フォルダーの階層/構成についてもご存知の前提で、表記を簡略化しています


01. surface10.png を入れ替えます

    シェルフォルダー内に既にある surface10.png を

    サンプルゴーストの surface10.png(時計の背景です) で入れ替えます。


02. surfaces.txt に定義している surface10 の記述をコメントアウトします


03. surfaces9.txt をそのままコピーします

    結果として、シェルフォルダーには surfaces.txt そして surfaces9.txt

    2つのサーフェス定義ファイルが存在することになります。


04. Clock_Digit フォルダーをシェルフォルダー内に、そのままコピーします


▲ここまでで、フォルダー構成は次のとおりです

shell\master

    ┬

    ├Clock_Digit

    │:

    │:

    ├surfaces.txt

    └surfaces9.txt


05. ghost\master にあるイベント処理辞書を変更します

    既存のイベント処理辞書に対して、

    サンプルゴーストの dic02_Event.txt に記述されている

    時刻書き換えスクリプトを追加していきます。


        (nop,(set,時計サーフェスID,(calc,9900000+(現在時)*100+(現在分))))

        \1((時計サーフェスID))

    この2行を、ゴーストの初期描画・再描画のタイミングで実行させるのが変更の目的です。


-eod-