2

我正在开发用于餐厅自定义菜单导航的应用程序。我已经完成了演示应用程序的演示目的。我的应用程序包含一堆我添加到资源文件中的图像。现在我想创建一个简短的安装,让人们有机会在运行时将自己的图像和菜单项添加到应用程序中。这是我的应用程序的屏幕:

在此处输入图像描述

图像将位于 AzureBlobStorage。一个人将能够提供一个唯一的密钥( GUID ),然后应用程序将连接到数据库所在的 azure MobileServices,其中包含所有菜单项(名称、类别、图像名称...)并将其映射到它自己的本地 SQL 精简版数据库。图像是具有 2 个不同尺寸的 .PNG 文件。(150x150 和 1072x611)

我的问题是,在创建 .APK 而不会降低速度的情况下,向应用程序添加图像的最佳方法是什么?

4

1 回答 1

1

对于从 Azure 检索的速度,您无能为力(除了根据性能选择云服务,但 Azure 可能与任何服务一样好)并假设您的 SQL 代码高效,Q 成为存储/检索的位置和方式以及如何在您下载和安装图像时保持 UI 响应。

我会存储在私有存储中,因为它的性能通常比 SDCard 高得多,并且未知数更少。

您还应该将较大的图像缩小到在您的 UI 的最高分辨率目标设备上仍然可以使用的最低分辨率。请记住,内存中的位图默认占用 x*y*4 字节,在您的情况下每个字节约为 2.6MB。

Android:高质量的图像大小调整/缩放

我假设您显示的主 UI 是ListView某种类型的,因此您应该实现图像的延迟加载,并肯定getView()在底层适配器中回收它们。

ListView 中图像的延迟加载

对于从云下载的速度,您无能为力,因此您应该在后台线程上执行此操作,例如AsyncTask,并在列表视图中使用占位符图像,直到下载实际图像。在您的适配器上使用notifyDataSetChanged()以让列表视图知道发生了变化。

http://android-developers.blogspot.co.uk/2010/07/multithreading-for-performance.html

http://codehenge.net/blog/2011/06/android-development-tutorial-asynchronous-lazy-loading-and-caching-of-listview-images/

最后,如果您真的想要一个好的 Android OOP 解决方案,请考虑实现一个内容提供程序。

http://developer.android.com/guide/topics/providers/content-providers.html#creating

私有内容提供者有什么用?

于 2013-07-03T15:08:51.550 回答