Android 安卓:我可以访问自己班级的资源吗?
在我的项目中,我有一个类,在这个类中,我希望能够访问图片的属性。但我不想在这节课上表现出来。在这门课上,我只想知道图像的宽度和高度,并做一些数学函数来返回一些东西 我的问题是我无法获得资源。例如,当我写作的时候Android 安卓:我可以访问自己班级的资源吗?,android,resources,bitmap,Android,Resources,Bitmap,在我的项目中,我有一个类,在这个类中,我希望能够访问图片的属性。但我不想在这节课上表现出来。在这门课上,我只想知道图像的宽度和高度,并做一些数学函数来返回一些东西 我的问题是我无法获得资源。例如,当我写作的时候 image = BitmapFactory.decodeResource(this.getResources(), R.drawable.tasnim); 它表示类型Stego的未定义的getResources()方法(Stego是我的类名) 请告诉我该怎么办 public 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();
}
}
该函数属于该类。因此,除非您的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();
}
}
Stego stego = new Stego(this);
然后,您可以从活动中初始化Stego
类的一个实例,如下所示:
public class Stego()
{
Public Stego(Context myAppContext){
image = BitmapFactory.decodeResource(myAppContext.getResources(), R.drawable.tasnim);
imWidth = image.getWidth();
imHeight = image.getHeight();
}
}
Stego stego = new Stego(this);
@Hesam:正如我在回答中所说的,您需要传递对应用程序上下文的引用。我添加了一个小代码示例。