Java 将图像预加载到变量中

Java 将图像预加载到变量中,java,android,image,imageview,Java,Android,Image,Imageview,我正在尝试使用加速计根据手机的位置更改应用程序中的图像。这不是我被困的地方,这并不难做到。 我有一组可绘制文件夹中的图像,这些图像根据设备的角度而变化。对于低分辨率的图像,这很好(切换imageview的图像),但我想知道的是,在创建滚动图像时,是否有一种方法可以像在JavaScript中一样用java预加载图像。因此,高分辨率图像将像低分辨率图像一样无缝变化。是的。 创建应用程序的子类MyApp 在MApp.onCreate()中,可以预加载图像;e、 g image1 = getResour

我正在尝试使用加速计根据手机的位置更改应用程序中的图像。这不是我被困的地方,这并不难做到。 我有一组可绘制文件夹中的图像,这些图像根据设备的角度而变化。对于低分辨率的图像,这很好(切换imageview的图像),但我想知道的是,在创建滚动图像时,是否有一种方法可以像在JavaScript中一样用java预加载图像。因此,高分辨率图像将像低分辨率图像一样无缝变化。

是的。 创建应用程序的子类MyApp

在MApp.onCreate()中,可以预加载图像;e、 g

image1 = getResources().getDrawable (R.drawable.image1);
在你的应用程序中,你只需做如下事情

image1 = ((MyApp)getApplication()).getImage1();
其中getImage1是您在MyApp中提供的一个getter

希望这对你有用

可以解决您的问题


您可以预加载几乎所有您需要的预加载程序。而且你不必担心它没有在你应该得到它的时候完成:DataListener.onDataArrived(数据)将在预加载完成后被调用

根据应用程序的设计和架构,你可以在你的活动的onCreate()或其他一些位置使用同样的技巧“main”onCreate是指每次活动恢复活动时都会调用main.onCreate。因此,如果您有来自其他活动的引用加载到先前的main.onCreate中的图像,您将在内存中得到图像的多个副本(旧指针不会失效;它们只是保持旧的内存块)。此外,当你退出应用程序时,应用程序不一定会死掉,因此你真的想使用Application.onCreate来实现真正的全局功能。