Android:我可以访问自己班级的资源吗?

时间:2010-11-29 17:04:48

标签: android resources bitmap

我的项目我有一个类,在这个类中我想要访问图片的属性。但我不想通过这堂课来展示它。在这个课程中,我只想知道图像的宽度和高度,并做一些数学函数来返回一些东西。

我的问题是我无法访问资源。例如,当我写

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();
    }
}

1 个答案:

答案 0 :(得分:3)

getResources()函数属于Context类。因此,除非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 stego = new Stego(this);