Viewを重ねるのがAndroid流…?

 たしかイスラムには、こんな言葉があったと思う。
「コーランの全てを理解しようと思ってはならない。
 それが必要とされる時に、真実は目の前に開かれるものだ」
 つまり “すぐに理解できなくても、繰り返し読めば、ひょんな拍子で理解できる時がくる。”と。
 そんなような言葉がカバラにもあった気がする…。

 FrameLayoutのリファレンスを眺めていて、あるmethodが目に留まった。
 onTouchEvent(MotionEvent event) とか、 scrollBy(int x, int y)とか、draw()とか…。
 View classの特徴そのまま。
 いやいや。なんのことはない。
 親class がViewなのだから、継承したmethod が使えて不思議はない。
 Viewのグループ化、レイアウトだけの機能かと思っていたが、これも勘違い。
 つまりFrameLayout も、れっきとしたView の一種なのである。

 なるほど。
 つまるところ、画像表示のSurfaceViewも、ListViewも、ボタンも、すべてViewの一種である。
 してみると。Android の画面は、部品であるいくつものViewを、多層に重ね合わせることで構成しているのだ。
 例えるなら、セル画やフォトショップのレイヤー。
 一枚のスクリーン(Canvas) に、全てを描いていた身からするとかなりリッチ。ちょっとした驚きである。

 Viewを重ねるのがAndroid流。
 なら、設計方針もそれに習うことにしよう。
// まぁ、元々、そういうつもりではいたんだけどね。(w

Posted in 雑記. Tags: , . Viewを重ねるのがAndroid流…? はコメントを受け付けていません »

ノベル・アプリ設計考察…

 さて。
 いろいろとイジくってきて、なんとなくわかってきた気になったので、そろそろ組み立てていこうかと思う。
 そこでちょいと悩みどころなのが、SurfaceView の必要性。
 テキスト表示にはTextViewが便利なので、使うことは決定。
 で、画像なんかの表示に、もうひとつViewを使おうと思っているのだが…。
 実のところ、TextViewで事足りてしまうのである。

 TextViewは、名前からの先入観で、テキスト専門のViewに思えてしまうが、SurfaceView 同様、ちゃんと画像も表示できる。
 もちろん、画像の上に文字を重ね合わせられるし、驚くことに、定期的にonDraw()が呼び出されて更新もされる。
 それもこの定期更新は、スレッドを使用しなくてもされるのだ。
 1/60同期はとってないようだが、表示画像を移動させてもチラつかない。
 なら、特に描画同期を取る必要もない。
 そう詳しくテストしてないのでアレだが、もしかしたら内部的にダブルバッファを持っているのかも…?
 まぁ、テスト環境が、VirtualBox のせいかもしれないけどね。

 それはともかく。
 性能を考えたら、SurfaceView の必要性はないのである。
 さて。どうしたものか…。

Posted in 雑記. Tags: , . ノベル・アプリ設計考察… はコメントを受け付けていません »