Android:我可以访问我自己的类中的资源吗?

标签 android resources bitmap

我的项目有一个类,在这个类中我想访问图片的属性。但我不想通过这个类来展示它。在这个类(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/

相关文章:

Android webview 无法呈现通过 iframe 嵌入的 youtube 视频

android - 从当前目的地无法找到导航操作/目的地

Android:带数字的可绘制资源。可能吗?

android - 从创建的所选颜色的位图中设置墙纸

Android:ImageView 旋转比例

android - 动态 TextViews 换行到线性布局中的下一行/行

android - 在android中为递归文件夹结构创建一个Tree-ExpandableListView

c++ - 为我的程序设置一个 exe 图标

java - 将资源(图像、声音位等)嵌入到 Java 项目中,然后使用这些资源

android - 修改位图非常慢...还有其他方法吗?