gpt4 book ai didi

android - 如何从没有上下文的类中调用 getResources()?

转载 作者:IT老高 更新时间:2023-10-28 13:23:23 27 4
gpt4 key购买 nike

在我的应用程序中,我有很多类(class)和 Activity 。 Droid 是一个没有上下文的类。 Mygame 是一个扩展 SurfaceView 并实现 SurfaceHolder.Callback 的类。我正在 mygame 类中创建一个 Droid 对象并为其设置背景图像和位置。我为此编写的代码如下所示。

block1 = new Droid(BitmapFactory.decodeResource(getResources(), R.drawable.birdpic), 100, 10);

Droid 类的构造函数如下所示。

public Droid(Bitmap bitmap, int x, int y) {

this.bitmap = bitmap;
this.x = x;
this.y = y;
}

在特定情况下,我必须从 Droid 类本身设置 Droid 对象的背景图像和位置。我遇到了这个问题。下面是执行此操作的代码 fragment 。

if(checkflag)
{
myObj.centerblock=new Droid(BitmapFactory.decodeResource(getResources(), R.drawable.blast), myObj.xpos, myObj.ypos);
}

问题在于 Droid 类没有上下文。所以我不能在这里使用 getResources() 。我已经尝试了下面的代码,但它崩溃了。

if(checkflag)
{
myObj.centerblock=new Droid(BitmapFactory.decodeResource(myObj.getResources(), R.drawable.blast), myObj.xpos, myObj.ypos);
}

谁能帮帮我。我只想设置背景图像并将其定位为 Droid 类本身的 Droid 对象。

最佳答案

上下文是系统的句柄;它提供诸如解析资源、获取对数据库和首选项的访问权限等服务。它是一个“接口(interface)”,允许访问特定于应用程序的资源和类以及有关应用程序环境的信息。您的 Activity 和服务还将 Context 扩展为它们继承所有这些方法以访问应用程序运行的环境信息。

这意味着如果要获取/修改有关资源的某些特定信息,则必须将上下文传递给特定类。您可以在构造函数中传递上下文,例如

public classname(Context context, String s1) 
{
...
}

关于android - 如何从没有上下文的类中调用 getResources()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8238588/

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