これは、@pskink から、必要なものを描画するカスタム ViewGroup を実装するようにアドバイスされた以前の質問のフォローアップです。ハードコードされた値を使用したプロトタイプで成功しました。アクティビティから初期化パラメーターを渡すことができるレベルに移動したいと考えています。リソース ID を渡し、onPaint メソッドで使用する画像を開く必要があります。
これが活動です。そこで ViewGroup インスタンスを取得できますが、既にインスタンス化されているため、コンストラクターでリソース ID を渡す意味がありません。セッターを使用しようとしましたが、リソースから Drawable を初期化するには Context が必要です。
protected void onCreate(Bundle state) {
super.onCreate(state);
setContentView(R.layout.activity_puzzle);
hiddenPicture = (TileGroupLayout) findViewById(R.id.hidddenPictureArea);
hiddenPicture.setPictureResource(R.drawable.pic_cute_girl);
ViewGroup のセッターには、コンストラクターのようなコンテキストがありません。
public void setPictureResource(int resourceId) {
int pictureResource = resourceId;
mCustomImage = context.getResources().getDrawable(R.drawable.pic_cute_girl);
pictureRect = mCustomImage.getBounds();
}
この問題からどのように取得しますか? ViewGroup を描画する前に、初期化パラメーターを渡す必要があります。アクティビティにはオーバーライドする onXY() メソッドが多数ありますが、同様の ViewGroup メソッドはありません。そのライフサイクルは何ですか?