gpt4 book ai didi

android - 从 Activity 传递资源 ID 以初始化自定义 ViewGroup

转载 作者:行者123 更新时间:2023-11-29 20:19:20 25 4
gpt4 key购买 nike

这是我之前的 question 的后续@pskink 建议我实现自定义 ViewGroup 来绘制我需要的内容。我成功地制作了一个使用硬编码值的原型(prototype)。我想将它移动到更高的级别,以便我可以从 Activity 传递初始化参数。我需要传递资源 ID 并打开要在 onPaint 方法中使用的图像。

这是 Activity 。我可以在那里获取 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没有constructor那样的context。

public void setPictureResource(int resourceId) {
int pictureResource = resourceId;
mCustomImage = context.getResources().getDrawable(R.drawable.pic_cute_girl);
pictureRect = mCustomImage.getBounds();
}

如何解决这个问题?我需要在绘制 ViewGroup 之前传递初始化参数。 Activity 有许多要覆盖的 onXY() 方法,但没有类似的 ViewGroup 方法。它的生命周期是什么?

最佳答案

在您的 ViewGroup 类中,只需从类中的任何位置调用 getContext()
编辑
除了从 ViewGroup 类获取上下文之外,您实际上不需要调用 getContext().getResources() 而应该调用 getResources()直接。

关于android - 从 Activity 传递资源 ID 以初始化自定义 ViewGroup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33460078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com