如何在Android Studio中调用/使用活动类外部的文件?

时间:2015-04-22 23:29:18

标签: java android android-studio

我想在Android Studio的app活动类之外的类中从我的drawable文件夹创建一个图像数组。我可以使用getResources()方法,但只能在活动中使用。我想保持我的代码干净整洁,如果我积累更多图像,在我的活动中创建一个数组可能会变得混乱。是否有类似的东西或从外部类访问getResources()方法的方法?我想要做的是使用我的drawable文件夹中的图像生成随机背景。我很乐意接受建议,因为我是一名新开发人员,可能会错误地解决这个问题。

3 个答案:

答案 0 :(得分:4)

您本身不需要Activity即可暂停ResourcesActivityContext延伸;它是Context,可让您访问自己的资源。如果您只想获得Context的参考,那么您所需要的只是一个Resources的课程。

答案 1 :(得分:0)

我可以通过导入android.content.res.Resources;然后访问这样的图像来实现:

Resources res = getResources();
Drawable image = res.getDrawable(R.drawable.imageName);

在外面的课堂上。您的类应该扩展View之类的内容以访问MainActivity的上下文。例如:

public class MyClass extends View{

Resources res = getResources();
Drawable image = res.getDrawable(R.drawable.imageName);

    public MyClass(Context context) {
        super(context);
    }
}

R.drawable指向图像所在的文件夹。只需将其更改为R.folderName即可满足您的需求。此文件夹必须位于项目的res文件夹中。

答案 2 :(得分:0)

这就是我解决问题的方法:

我错误地认为我需要一种类似JComboBox<String> combobox = new JComboBox<String>(new Vector<String>(myArrayList)); 的方法来将我的图像文件存储在一个数组中。

相反,我发现你可以简单地存储这样的文件:

getResources()

我在public class BackgroundCatalogue { public int[] mBackgroundCatalogue = { R.drawable.image1, R.drawable.image2, R.drawable.image3, R.drawable.image4 }; } 中使用getResources遇到问题,因为我希望我的应用在API 14及更高版本上运行。解决方法是使用Activity,如下所示:

ResourcesCompat

Drawable drawable = ResourcesCompat.getDrawable(getResources(), mBackgroundCatalogue.getBackground(), null); backgroundImageView.setImageDrawable(drawable); 是我在我的另一个类中定义的自定义方法,它选择存储在数组中的随机图像文件。