Android Guardar imágenes en una tarjeta de memoria o en una tarjeta SD

Tengo que buscar las imágenes y algunos otros datos del servidor y luego mostrarlo en la lista. Pero como el número de registros puede ser bastante grande, así que no estoy seguro si debo guardar imágenes en la base de datos SQLite o guardarlo en SDCard o guardarlos en la memoria.

Gracias, nil

Siempre hagas el hábito de guardar la ruta de las imágenes a la base de datos. Para ver una lista, asegúrese de usar la miniatura de la imagen. Esto le ayudará en la carga rápida de estas imágenes en la lista.

long selectedImageUri = ContentUris.parseId(Uri.parse(anniEntry.getUri())); Bitmap bm = MediaStore.Images.Thumbnails.getThumbnail( mContext.getContentResolver(), selectedImageUri,MediaStore.Images.Thumbnails.MICRO_KIND, null ); 

Aquí anniEntry.getUri () es la imagen uri.Now, ponerlo en el segundo code.U puede obtener micro o mini miniatura de acuerdo a los requisitos

Generalmente se considera mala forma de guardar datos binarios como una imagen en una base de datos. En la mayoría de los casos, por algunas razones técnicas, en realidad terminará dañando el rendimiento de su base de datos. En su lugar, guarde las imágenes que desee almacenar en la memoria caché en la tarjeta SD y guarde el archivo de esas imágenes en la base de datos.

Si tiene que descargar imágenes y guardarlas en SDcard.Kindly siga el código abajo:

 package com.tablet; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.ProtocolException; import java.net.URL; import java.net.UnknownHostException; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Bundle; import android.os.Environment; import android.os.Handler; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.Toast; /* * This class download & store the media in external storage * */ public class DownloadActivity extends Activity { private static String fileName = "android.jgp"; private Button btnDownload; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); btnDownload = (Button) findViewById(R.id.download); btnDownload.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { // TODO Auto-generated method stub download(); } }); private void download() { System.out.println("Inside Download"); try { // this is the file you want to download from the remote server String path = "http://code.google.com/android/goodies/wallpaper/android-wallpaper5_1024x768.jpg"; URL u = new URL(path); HttpURLConnection c = (HttpURLConnection) u.openConnection(); c.setRequestMethod("GET"); c.setDoOutput(true); c.connect(); String PATH = "/data/Kamal" //Environment.getExternalStorageDirectory() // + "/download/"; + "/"; Log.v("log_tag", "PATH: " + PATH); File file = new File(PATH); file.mkdirs(); File outputFile = new File(file, fileName); FileOutputStream f = new FileOutputStream(outputFile); InputStream in = c.getInputStream(); Log.v("log_tag"," InputStream consist of : "+in.read()); byte[] buffer = new byte[1024]; int len1 = 0; while ((len1 = in.read(buffer)) > 0) { //System.out.println("Reading byte : "+in.read(buffer)); f.write(buffer, 0, len1); } Toast.makeText(this, "Download Completed Successfully @ "+PATH, Toast.LENGTH_LONG).show(); f.close(); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); Toast.makeText(this, "MalformedURLException", Toast.LENGTH_LONG).show(); } catch (ProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); Toast.makeText(this, "ProtocolException", Toast.LENGTH_LONG).show(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); Toast.makeText(this, "FileNotFoundException", Toast.LENGTH_LONG).show(); }catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); Toast.makeText(this, "UnknownHostException", Toast.LENGTH_LONG).show(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); Toast.makeText(this, "IOException", Toast.LENGTH_LONG).show(); } } } 

Se trata de un requisito de aplicación y su aplicación. Yo sugeriría utilizar tarjeta interna o sd para almacenar las imágenes y guardar allí camino en db

Almacenar cualquier información pesada que no necesite el comportamiento de devolver sub-partes de los datos basados ​​en la consulta aplicada (como imágenes, vídeos), no debe almacenarse en la base de datos, sino que sólo una referencia a que los datos deben ser almacenados.

  • ¿Qué hará un SQLiteCursor si una columna es nula?
  • Sqlite Seleccione Query con rawQuery en Android
  • Androide sqlite comprobar si se ha insertado un nuevo valor
  • Sqlite sincrónico
  • Cómo almacenar datos en la base de datos sqlite con jQuery-mobile dreamviewer cc con phonegap en android?
  • Transacción de la base de datos Android
  • Excepción de la base de datos SQLite de Android - código 14 (no se puede abrir el archivo de base de datos)
  • Aplicación detenida en Android / SQLITE ERROR /
  • Cómo implementar herencia de tabla en GreenDao
  • Intente volver a abrir un objeto ya cerrado: SQLiteDatabase:
  • copia sqlite db al dispositivo android falla
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.