I am working on one application and getting product images from the server. Currently I am saving those images into the SQLite database after converting them into byte a
Save them as a file on the external storage:
File downloadDir = new File(android.os.Environment.getExternalStorageDirectory().getAbsolutePath() + "/MyAppName/MyImages");
if(!downloadDir.exists()){
downloadDir.mkdirs();
}
will create a directory to store the pictures in.
Then check out this guide here how to load only the right amount of pixels for your Image. Else you will get an OutOfMemory exception. (5MP picture will take up to 20MB of the heap)
Demo code
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.
}
}
Storing app specific things on SD Card may not be the right way.. You should store images on
// it will reside in data/data/com.package.name
String path = getApplicationContext().getFilesDir() + "/";
File imagesFolder = new File(path);
imagesFolder.mkDir();
and put image files here in that folder.. So SD Card dependency can be removed.