お父さん勝手に日記見ないでよ!

日記ではないです。

ViewをBitmapに。あ、あとあけおめです!

皆様、明けましておめでとうございます。
旧年中は様々な形での、ご支援ご支持、また厳しい意見などありがとうございました。今年もよろしくお願いいたします。

更新が遅れてしまいました。

一発目からandroid


http://www.brighthub.com/mobile/google-android/articles/30676.aspx

この記事を見て色々摸索中。

タイトルの通り、Viewで描画されるものをBitmapで確保するための手段。
何のために使うかですか?OpenGLでテクスチャにするためですね。

書かれている内容としては

動的にBitmapを確保し、Canvasと結びつけて、好きなレイアウトをキャンバスを通してBitmapに描画することでViewをそのままBitmapとする。

といった内容なのですが、どーも上手くいきません。

どうやらレイアウトの描画、例えばRelativeLayoutならば

RelativeLayout rl = new RelativeLayout(this);

(ビットマップの確保、キャンバスの生成、素材Viewの作成)

rl.addView(v);

rl.draw(canvas)


とやることで、Canvasに関連付けられたBitmapにViewが描画され、適切な範囲を切り取ることで完成。

らしいが…

addViewの際に使用したViewがレイアウトの場合(ViewGroupを継承したクラス)

子ビューが描画されない…、ルートとなったビューのみ描画さるにとどまる。

スタックトレースとにらめっこしているとどうやら、ViewTreeの走査は行われているようなので、
描画されていてもおかしくないのになぁ。

追調査が必要…