【问题标题】:Where and How to store png images in android Application在哪里以及如何在android应用程序中存储png图像
【发布时间】:2011-08-09 23:34:19
【问题描述】:

我正在开发一个包含大量图形的应用程序....它的大约大小为 80 MB。应用程序将在第一次从 Web 服务启动时下载图形(实际上是 png 格式的贺卡)。问题我我面临的问题是在哪里保存这些图形(贺卡)以及如何保存它们?是否将它们保存在内部存储或 SD 卡或 SQLite 中......我的问题是

  1. 如何根据类别将它们存储在不同的文件夹中。
  2. 如何更新它们。
  3. 如何检索/访问它们。

    这些图像的所有信息都将在 SQLite 中。另外请给我一些代码。

【问题讨论】:

    标签: android png


    【解决方案1】:

    答案如下。对于代码,您应该搜索这个地方并尝试一些东西,如果它不起作用,请返回。

    1. 由于大小为 80MB,我建议您存储在外部存储中。您可以创建目录结构并将每个类别存储在那里。
    2. 您需要向您的应用授予 WRITE_EXTERNAL_STORAGE 权限,然后您才能读取/写入/删除/更新您的 png。
    3. 简单的文件操作可用于检索/访问图像。在 SQLite 中,您可以存储图像的路径。

    【讨论】:

      【解决方案2】:

      使用下面的代码。

      public class ImageDownload {
      
          public static void downloader(String imageURL, String fileName) { 
                  try {
                          URL url = new URL("http://www.exampleurl.com/" + imageURL); 
                          File file = new File(fileName);
      
      
                          URLConnection con = url.openConnection();
      
                          InputStream is = con.getInputStream();
                          BufferedInputStream bis = new BufferedInputStream(is);
      
                          ByteArrayBuffer baf = new ByteArrayBuffer(50);
                          int current = 0;
                          while ((current = bis.read()) != -1) {
                                  baf.append((byte) current);
                          }
      
                          FileOutputStream fos = new FileOutputStream(file);
                          fos.write(baf.toByteArray());
                          fos.close();
      
                  } catch (IOException e) {
                          Log.d("Downloader", "Error: " + e);
                  }
      
          }
          }
      

      【讨论】:

        【解决方案3】:
        1. 这完全取决于您希望如何构建存储。如果用户可以创建类别,请将与 category1 相关的用户文件存储在名为 category1 的文件夹中。
        2. 更新它们只需将新下载的文件与数据库中的信息或实际文件本身进行比较,并在必要时进行替换。或者首先将磁盘上的文件与网络上的文件进行比较,并根据需要进行更新。
        3. 您可以使用 HttpClient 从 Web 检索/访问它们,也可以使用 Android ContentManager 从手机存储/检索它们。您可以将图像的路径存储在 Sqlite 中

        就代码而言,您几乎找不到任何人会在这里为您提供代码。 StackOverflow 适用于您遇到困难并需要帮助时。

        谷歌:

        android httpclient
        android sqlite
        安卓内容提供者

        【讨论】:

          猜你喜欢
          • 2016-11-16
          • 1970-01-01
          • 2021-05-04
          • 1970-01-01
          • 1970-01-01
          • 2018-01-25
          • 2023-03-14
          • 1970-01-01
          • 2021-06-26
          相关资源
          最近更新 更多