今、表題の件の実装方法で非常に悩んでおります。
やりたいことは、なんらかの事前にxmlで用意したレイアウトを画面に表示しないで、Bitmapを得たいということです。
画面に表示するのであれば、
以下のように、簡単に実現できるのですが、
View layout = View.inflate(ctx, R.layout.balloon, rootView);
layout.setDrawingCache(true);
Bitmap canvasBitmap = Bitmap.createBitmap(layout.getDrawingCache());
layout.setDrawingCache(true);
inflate の際のrootViewを指定しない状態では、Bitmapが作成されないようです。
そこで、以下のように実装してみたのですが、
View layout = View.inflate(ctx, R.layout.balloon, null);
Bitmap canvasBitmap = Bitmap.createBitmap(300, 300, Config.ARGB_4444);
Canvas canvas = new Canvas(canvasBitmap);
// layout.measure(canvas.getWidth(), canvas.getHeight());
// layout.forceLayout();
// layout.setWillNotDraw(false);
// layout.invalidate();
layout.draw(canvas);
drawがうまく実行されてくれないようです。
リスト上でコメントになっている部分は、drawのために実験試しに追加したコードですが、いずれもうまくいきません。
なにか良い方法はないでしょうか?