4

我正在开发一个应用程序并从服务器获取产品图像。目前,我将这些图像转换为字节数组后将它们保存到 SQLite 数据库中,并在使用时将它们转换回位图。

现在我有以下两个查询:

  1. 将图像保存在应用程序中的最佳方式是什么,我们也可以从中同步它们并在需要时获取。

  2. 如何在图像视图或按钮上分配它们,因为有时会出现内存问题并且应用程序突然停止。

请指导我。任何帮助表示赞赏。

4

3 回答 3

4

在 SD 卡上存储应用程序特定的东西可能不是正确的方法。你应该将图像存储在

// it will reside in data/data/com.package.name 
String path = getApplicationContext().getFilesDir() + "/";
File imagesFolder = new File(path);
imagesFolder.mkDir();

并将图像文件放在该文件夹中。因此可以删除 SD 卡依赖项。

于 2013-10-16T12:27:20.007 回答
3

演示代码

package com.example.demo;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ImageView;

public class MainActivity extends Activity {
    private AQuery androidQuery;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ImageView img = (ImageView) findViewById(R.id.img);
        androidQuery = new AQuery(this);
        androidQuery.id(img).image(imgUrl, true, true);// donload and save to sdcard if it is already in sdcard will not download again.

    }

}
于 2013-10-16T12:20:13.173 回答
2

将它们保存为外部存储上的文件:

File downloadDir = new File(android.os.Environment.getExternalStorageDirectory().getAbsolutePath() + "/MyAppName/MyImages");
if(!downloadDir.exists()){
   downloadDir.mkdirs();
}

将创建一个目录来存储图片。

然后在此处查看本指南如何为您的图像仅加载适量的像素。否则你会得到一个 OutOfMemory 异常。(5MP 图片将占用 20MB 的堆空间)

于 2013-10-16T12:06:09.337 回答