Android|FOEわたくしことkanakanaが、思ったことを書き散らす場です。ないブログに表示されています。新しい記事を書く事で広告が消えます。前回の記事からの続きです。実際にウィジェットを作る基本手順を踏みながら、紹介しました。今回は、Glaejaを使いこなすに避けては通れない「エスケープキャラクタ」というものの解説をします。そんではいってみようホーム画面にGlaejaのウィジェットを設置してください。新規に設置するところからやってみようぜ。この、おさらいを兼ねてってのは意外と大事よ。算数苦手だったからって絶対にできないわけじゃない。それはド文系のわたしが保証します。すると、既にサンプルとしてテキストレイヤーが1つできています。今回はこれを注意してよく見てみる。分かりやすいように、例によって、フォントサイズと色は変えました。#P'%'#」ではない...。大袈裟な紹介をしましたが、なんのことはない、これこそがエスケープキャラクタです。通常の記述方法であればそのままの形で描画エンジンに解釈されますが、この「エスケープキャラクタ」を用いた記述の場合には、その内容が解析され別の文字列に展開されてから描画エンジンに解釈されます。併せて実際の画面を見てみるとなんなく理解できるであろう。上のスクリーンショットを撮ったのは、10時50分で、バッテリ充電率は99%だった。エスケープキャラクタで表示できる内容はいろいろあります。時計やカレンダーや、充電率や電波情報、そして天気予報など。一覧は作者サイトやorefolderさん作のPDFファイルなどを参照のこと。エスケープキャラクタにはルールがあるところで、エスケープキャラクタの使い方にはいくつかルールがあります。非常に大雑把且つ強引な論法になりますが、がんばって説明してみる。例として、もう一度「$HH:mm$」→「10:50」を見てみよう。「:」は特に変わらずそのまま「:」、そして「mm」は「50」(分)に展開されていることが分かるだろう。時計っぽい内容に展開されるわけだ。してHは大文字でmは小文字、しかも2文字ずつなんだろう?「$h:M$」と変えてみると、どうなるだろうか。なんだか分かんなくなった。ステータスバー右上の時計と照らし合わせると、1はきっと午後1時の1。9はどこからやってきたのか。んーじゃあ、いったい何を「$」で囲んでやればいいんだ。唐突に、「$kanakana$」って書くとどうなるんだろう?なんにも表示されないね。縮めて、「$ka$」だとどうなる?なんか表示されましたが、これもさっき同様、なんのことだか分からんね。「k」は「13」に、「a」は「PM」に、それぞれ展開されたんだろうなあと推測できるだろう。強引にここまでのまとめ!囲む文字にも囲まれる文字列にも、それなりのルールがあるのです。場合によっちゃエラーとしてまるごと表示されなかったりします!と、定められているわけ。これを踏まえて、上で試したものを思い出してみよう。「12時間表記の時」「:」「月」と展開されたから。Hとhとか、HHとhhとか、mとMとmmとMMとかは、それぞれ全然違う情報を示す記号なわけね。謎だった9ってのは、9月の9だったわけだ。「MMM」なら「Sep」、「MMMM」なら「September」と表示される。このように、同じ記号でも、重ねることで変化するものもあるので、注意。「:」がそのまま表示されているのは、変換はしないけど、カレンダー情報に展開する「$」の中では、そのまま表示される文字だから。文章がまるごと表示されなくなる文字だから。「24時間表記の時」「午前午後」と展開されたから。くどい説明でしたが、エスケープキャラクタの仕組みと、それで囲まれる記号にはルールがあるということ、お分かりいただけただろうか?くど過ぎてよけいにややこしくなっちゃってたらごめんなさいな...。例外の単一引用符さて、くどいと言いつつ、もう1つ説明しとかなきゃいけないことがある。それは単一引用符「'」について。パソコンのキーボードでは、Shiftを押しながら数字の7を押すと出てくるやつだ。」は、エスケープキャラクタとして機能する文字で、これに囲まれた文字列は「一切の解析・展開を受けずそのまま出力」される、という「無変換」系エスケープキャラクタです。作者サイトからの引用です。いっちばん最初の、サンプルとして作られていたレイヤーを思い出してみよう。ここの「#P'%'#」という記述。「'%'」はなんでしょう。「#」で囲まれているのに特に何も変換されていない。変換・展開されずにそのまま表示されるのです。なんだけど、ここで、作者サイトの、「#」:バッテリー情報分類一覧を見てみよう。バッテリ情報に変換される記号として挙げられているのは、G、H、l、P、s、S、T、t、v、Vだけ。「%」なんて含まれてないよ。単一引用符を使わず、「#P%#」と書いてみたらどうなるだろう?答え。