スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。



SurfaceViewのCanvasを初期化する

SurfaceViewの画面を描画するとき,フレーム毎に初期化する必要がありました。

いままではSurfaceHolderからCanvasを取得して
Canvasの大きさ分drawRect()していました。
(このとき使用するPaintはFILLモードで)

しかしCanvasには便利なメソッドが用意されているじゃないですか...。

http://developer.android.com/intl/ja/guide/topics/graphics/2d-graphics.html#on-surfaceview

ここに書いてあったのですがCanvasクラスのdrawColorメソッドで初期化できるようです。

ただリファレンスの内容をみると???なことが。

http://developer.android.com/intl/ja/reference/android/graphics/Canvas.html#drawColor(int)

Fill the entire canvas' bitmap (restricted to the current clip) with the specified color, using srcover porterduff mode.

指定した色でCanvasクラス内のbitmapを塗りつぶすよ。
そのときは現在のクリップが反映(で制限)されるよ。
使われるのはsrcover porteduff mode...って何!?

Src Over PortDuff Modeらしい。

PortDuffは...

http://developer.android.com/intl/ja/reference/android/graphics/PorterDuff.Mode.html

リファレンスにありましたが説明がほとんどない。
概念的にはJavaのAlphaCompositeクラスと同じようです。

http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/awt/AlphaComposite.html

PorterさんとDuffさんが書いた論文(?)のようです。
この論文に従って実装されたものがJavaのAlphaCompositeクラスで,
AndroidのPorterDuff.Mode列挙型のようです。

2つの色を合成するときの合成処理方法についてのモードということでしょうか。

その処理について説明されているページがいくつか...

PortDuff.Modeについての説明
http://d.hatena.ne.jp/Superdry/20110204/1296809054

http://www.ccad.sist.chukyo-u.ac.jp/~mito/ss/program/Java/AppletApp/graph/transprcy/index.htm
http://www.ibm.com/developerworks/jp/java/library/j-mer0918/

PortDuff.Mode列挙型についての説明
http://lovely.na.coocan.jp/wiki/index.php?Android%2FPorterDuff

ふ~詰め込むこといっぱいあり過ぎだな。
関連記事
スポンサーサイト



コメントの投稿

非公開コメント

アクセス
あなたは
キーワード
カテゴリー
最近の記事
リンク
月別アーカイブ
ブロとも申請フォーム

この人とブロともになる

WEB検索
Google

RSSフィード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。