我的项目有一个类,在这个类中我想访问图片的属性。但我不想通过这个类来展示它。在这个类(class)中,我只想知道图像的宽度和高度,并执行一些数学函数来返回一些内容。
我的问题是我无法访问资源。例如,当我写
image = BitmapFactory.decodeResource(this.getResources(), R.drawable.tasnim);
它表示 Stego 类型的 getResources() 方法未定义(stego 是我的类名)。
请告诉我我该怎么办?
public class Stego()
{
Public Stego(){
image = BitmapFactory.decodeResource(this.getResources(), R.drawable.tasnim);
imWidth = image.getWidth();
imHeight = image.getHeight();
}
}
最佳答案
getResources()
函数属于Context
类(class)。因此,除非您的 Stego
类直接(或间接)扩展 Context
,否则没有可用的 getResources()
函数。
因此,您需要做的是传递对应用程序上下文的引用(例如,在 Stego
类或类似类的构造函数中)。或者,如果您只需要一个资源 ID,则传递该 ID 可能会更容易。
这可能看起来像这样:
public class Stego()
{
Public Stego(Context myAppContext){
image = BitmapFactory.decodeResource(myAppContext.getResources(), R.drawable.tasnim);
imWidth = image.getWidth();
imHeight = image.getHeight();
}
}
然后,您可以在 Activity 中初始化 Stego
类的实例,如下所示:
Stego stego = new Stego(this);
关于Android:我可以访问我自己的类中的资源吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4306082/