在Android应用程序包中包含图像的最佳方法

时间:2012-06-01 18:11:55

标签: android

我正在为android开发一个应用程序,该应用程序显示了一个狂欢节活动列表。我希望应用程序具有每个活动的图像,以避免用户在运行应用程序时下载它,并通过应用程序改善用户体验。

为此,我已将每个活动的图像添加为资源,但我不知道这是否是最好的方法。资源有一些我不喜欢的限制,例如你不能在drawable文件夹中创建子文件夹来组织图像,唯一的字符接受作为资源名称是[a-zA-Z0-9_],等等。 ...

有什么好办法吗?或者我必须使用资源,如果我想避免用户必须下载图像。

由于

3 个答案:

答案 0 :(得分:1)

您可以在用户第一次加载应用程序时下载图像,然后将其保存到SD卡。

当您的应用程序再次运行时,请检查SD卡中是否有可用的天气图像。

如果没有,则下载图像,否则使用sdcard中的图像。

答案 1 :(得分:1)

android系统旨在将所有可绘制项目(也称为图像)放在资源文件夹中。如果您希望图像与您的应用程序一起打包(而不是事后下载),则需要将它们包含在res / drawable中

答案 2 :(得分:1)

下载图像总是更好,但是如果你的要求是应用程序应该预先拥有所有图片,那么你可以使用“assets”文件夹,我认为对图片的名称没有任何限制。我尝试了以下代码,它可以工作:

ImageView img = (ImageView)findViewById(R.id.activity_image);
    try {
        Drawable d = Drawable.createFromStream(getAssets().open("@ahd ka.png"), null);
        img.setImageDrawable(d);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

我故意使用名称中包含特殊字符的png文件来表明程序运行。希望这会有所帮助。