我正在为android开发一个应用程序,该应用程序显示了一个狂欢节活动列表。我希望应用程序具有每个活动的图像,以避免用户在运行应用程序时下载它,并通过应用程序改善用户体验。
为此,我已将每个活动的图像添加为资源,但我不知道这是否是最好的方法。资源有一些我不喜欢的限制,例如你不能在drawable文件夹中创建子文件夹来组织图像,唯一的字符接受作为资源名称是[a-zA-Z0-9_],等等。 ...
有什么好办法吗?或者我必须使用资源,如果我想避免用户必须下载图像。
由于
答案 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文件来表明程序运行。希望这会有所帮助。