2015-09-16 3 views
-5

Привет, я новичок в Android. Может ли кто-нибудь описать способ, если какая-либо из хранения базы данных Image to Android & извлечет ее?Хранение и извлечение базы данных Android

+3

Считайте себя счастливым, что вы не знаете, как сохранить изображение в db. Это очень плохой способ сделать это. Просто вставьте ссылку или путь к файлу. – e4c5

+0

Файлы или любые двоичные данные должны очень редко храниться внутри БД. Они должны храниться в файловой системе с указанием пути к файлу, хранящемуся в БД. Короче говоря, реляционные/SQL-базы данных не очень хорошо обрабатывают данные такого рода и считаются отраслевой антипартией, чтобы сделать это не только в Android, но и в программировании вообще. –

+0

'Может кто-нибудь описать путь' ... это не учебный сайт, –

ответ

0

Посмотрите на этот учебник ...

http://www.tutorialforandroid.com/2009/10/how-to-insert-image-data-to-sqlite.html

и вы можете использовать этот код:
для хранения изображения:

Map<String, byte[]> hh = new HashMap<String, byte[]>(); 

String hi = "http://i.stack.imgur.com/TLjuP.jpg"; 
byte[] logoImagedata = getLogoImage(hi);  

hh.put("img",logoImagedata); 

для retriving:

byte[] imageByteArray = hh.get("img"); 

ByteArrayInputStream imageStream = new ByteArrayInputStream(imageByteArray); 
Bitmap theImage= BitmapFactory.decodeStream(imageStream); 

и getLogoImage:

private byte[] getLogoImage(String url){ 
     try { 
       URL imageUrl = new URL(url); 
       URLConnection ucon = imageUrl.openConnection(); 

       InputStream is = ucon.getInputStream(); 
       BufferedInputStream bis = new BufferedInputStream(is); 

       ByteArrayBuffer baf = new ByteArrayBuffer(500); 
       int current = 0; 
       while ((current = bis.read()) != -1) { 
         baf.append((byte) current); 
       } 

       return baf.toByteArray(); 
     } catch (Exception e) { 
       Log.d("ImageManager", "Error: " + e.toString()); 
       return null; 
     } 

    } 

Надеюсь, это поможет вам.

+0

Спасибо вам большое за вашу помощь :) – Anu

+0

если этот ответ поможет вам решить вашу проблему, так что принимайте ответ для другого человека. – zheek

Смежные вопросы