我正在处理一个应用程序并从服务器获取产品图像。 目前我将这些图像转换为字节数组后将其保存到SQLite数据库中,在使用时我将它们转换回位图。
现在我有以下两个查询:
保存应用中的图片的最佳方式是什么,我们也可以同步它们,并在需要时获取。
如何在图像视图或按钮上分配它们,因为有时会出现内存问题并且应用程序突然停止。
请指导我。任何帮助表示赞赏。
答案 0 :(得分:4)
在SD卡上存储应用特定内容可能不是正确的方法.. 您应该将图像存储在
上// it will reside in data/data/com.package.name
String path = getApplicationContext().getFilesDir() + "/";
File imagesFolder = new File(path);
imagesFolder.mkDir();
并将图像文件放在该文件夹中。因此可以删除SD卡依赖项。
答案 1 :(得分: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.
}
}
答案 2 :(得分:2)
将它们保存为外部存储上的文件:
File downloadDir = new File(android.os.Environment.getExternalStorageDirectory().getAbsolutePath() + "/MyAppName/MyImages");
if(!downloadDir.exists()){
downloadDir.mkdirs();
}
将创建一个目录来存储图片。
然后查看此guide here如何仅为图片加载适量的像素。否则,您将获得OutOfMemory异常。 (5MP图片最多需要20MB的堆)