Glaeja小ネタ4

|

久しぶりにGlaejaの小ネタです。

今まで書いたものと重複というか同じようなことをやっている部分もありますが、最近自分が使ったもの、覚書のようなものです。

わりと滑らかに色を変化させる

Nice Battery Barというスキンでは、「色と透過度」レイヤーを使って、バッテリーバーの色を変化させています。
130613-1
これのRGBの値はなんだか複雑になっていますが、二次関数のグラフを参考にしています。

R:
#P#@p@20@p@-@x@#P#@p@20@p@-@x@*@x@-1@p@*@x@6@p@/@x@290@p@+@x@0@p@max@x@255@p@min@x@.0@P@

G:
#P#@p@60@p@-@x@#P#@p@60@p@-@x@*@x@-1@p@*@x@12@p@/@x@300@p@+@x@0@p@max@x@255@p@min@x@.0@P@

B:
#P#@p@60@p@-@x@12.7@p@*@x@ 0@p@max@x@255@p@min@x@.0@P@

これをもうちょっとわかりやすくすると、

R…{(P-20)*(P-20)*-1}/6+290
G…{(P-60)*(P-60)*-1}/12+300
B…(P-60)*12.7

となります。Pは#P#のことで、バッテリー残量です。また、それぞれ、値が0以下や255以上のときは、0や255になるようにしています。
(P-20などを2回繰り返しているところは@dup@を使うと少し省略できるかも…。)

これで、バッテリー残量1%ごとに、数字が変わっていきます。もちろんもっと単純な式でも変化はしますが、青→緑→黄→赤とうまく変化させるためにこうしました。ちょっと省略して5%ごとにすると、以下のように変化します。

 

文字数によってバーの長さを変える

130613-2
例えば、このスキンは「バー」レイヤーの上に「テキスト」レイヤーが乗っているだけの、単純なスキンです。
でも、曜日によってバーの長さが変わります。
130613-3
これを実現するには幾つかの方法があります。
例えば今回のように曜日なら$f$で曜日を0から6の数字に変換できます。

$f$@p@40,30,50,60,15,66,11@0/-1/m@

とそれぞれの曜日に具体的な長さをmで代入してもいいでしょう。

今回はLを使ってみます。Lは文字列の長さを取得するものです。

$EEEE$@0/-1/L@

とすると$EEEE$、つまりSUNDAYやTUESDAYといった曜日の文字列の長さを取得します。ただし、スタックにプッシュされるだけなので、元の$EEEE$は消えませんし、文字列の長さの数字も表示されません。なので

$EEEE$@0/-1/L@@0/-1/d@.0@P@

として、元の文字列(曜日)を削除してスタックに積まれている文字列の長さを呼び出します。これで日曜日ならSUNDAYなので「6」が表示されます。

この数字を使って、あとは適当に数倍したりして調整すれば、文字列の長さによってバーの長さを変更することができます。
もちろん、バーだけでなく、多角形などでも同じように使えます。

 

以上、小ネタでした。

Random Posts

UMIDIGI F1は2019年1月7日、199ドルで販売開始!いつもの公式10台プレゼントもあり
FREETELのスマートコミコミ+がやっぱりわけわからなくて近寄りたくない
【アンケート企画】あなたのスマホの持ち方教えてください!2017【結果と考察編】
Eric Clapton 【あなたのホーム画面見せてください 2018】
Galaxy S8の画面キャプチャをgifアニメーションで撮影できる機能が面白い
Amazon Echo 開封の儀とファーストインプレッション:スマートスピーカーの選択が悩ましい
Essential Phone PH-1 開封の儀:大人しめの高級感と、確かにそこにある前面カメラ
Another Widget:ごくシンプルに日付や時間を表示するありきたりなウィジェット
UserStream停止の次は3時間300post制限…非公式Twitterアプリはこの先生きのこれるのか
夜桜【ホーム画面定期コンテスト】
Xiaomi Mi Band 3 開封の儀:0.78インチ有機ELディスプレイ搭載のスマートバンド
かわいい!それだけで欲しくなる! ZNT「萌えニャンコ系」スマホ ホールドリングをご紹介
RAM6GB/ROM128GBで$150のコスパ最強スマホ「Vargo VX3」がなんか凄え!!
本当につぶやきを投稿!IFTTTを使ってGoogle HomeからTwitterにツイート投稿する
ファーウェイ端末のスクリーンショット撮影直後の画面を表示しないようにする