这是我之前的问题的后续,@pskink 建议我实现自定义 ViewGroup 来绘制我需要的内容。我使用硬编码值成功地制作了原型。我想将它移动到可以从 Activity 传递初始化参数的更高级别。我需要传递资源 id 并打开要在 onPaint 方法中使用的图像。
这就是活动。我可以在那里获取 ViewGroup 实例,但它已经实例化,因此在其构造函数中传递资源 ID 是没有意义的。我尝试使用 setter,但我需要一个 Context 来从资源初始化 Drawable。
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 的 setter 没有像构造函数那样的上下文。
public void setPictureResource(int resourceId) {
int pictureResource = resourceId;
mCustomImage = context.getResources().getDrawable(R.drawable.pic_cute_girl);
pictureRect = mCustomImage.getBounds();
}
如何从这个问题中得到?我需要在绘制 ViewGroup 之前传递初始化参数。Activity 有许多 onXY() 方法可以覆盖,但没有类似的 ViewGroup 方法。它的生命周期是什么?