2015-11-19 88 views
0

處理圖像我注意到,使用數據庫中的BLOB是不顯示圖像的好方法。 我的圖片大小小於100KB。 我怎樣才能解決這些問題的SQLite數據庫? 和繪製文件夾的我應該在哪裏放呢?在SQLite數據庫

這是我的分貝:

這是我的數據庫類:

public class database extends SQLiteOpenHelper { 

    public final String path = "data/data/com.example.booktest/databases/"; 
    public final String Name = "database"; 
    public SQLiteDatabase mydb; 
    private final Context mycontext; 

    public database(Context context) { 
     super(context, "database", null, 1); 
     mycontext = context;  
    } 

    @Override 
    public void onCreate(SQLiteDatabase arg0) {...} 

    @Override 
    public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {...} 


    public void useable() { 
      boolean checkdb = checkdb(); 
      if (checkdb) { 
      } else { 
       this.getReadableDatabase(); 
       try { 
       copydatabase(); 
      } 
      catch (IOException e) {} 

     } 

    } 


    public void open() {...} 


    @Override 
    public void close() {... } 


    public boolean checkdb() {...} 


    public void copydatabase() throws IOException {...} 
+1

其實,在數據庫中存儲的圖像100KB [工作得很好(HTTP:// WWW。 sqlite.org/intern-v-extern-blob.html)。 –

+0

@CL。你能告訴我應該使用什麼方法嗎?以及如何將其分配到的ImageView – Ali

回答

0

作爲一種典型的方式,開發人員通常會將圖像保存在其應用程序自己的私人目錄中。

/data/data/app_id/files 

因此,你也應該按照這種方式。所以,首先要建立這些圖像,稱爲images專用目錄,並保存所有圖片在那裏。

在數據庫端,你可以簡單地只能保存他們的名字,例如photo1.jpg

注:

  • 爲了得到你的私人目錄的引用,使用活動的getFilesDir()方法。

  • 爲了獲得圖像的絕對地址,則可能需要使用此代碼:

    File privateDir = getFilesDir(); 
    File imagesDir = new File(privateDir, "images"); 
    File image = new File(imagesDir, "photo1.jpg"); 
    
0

只需下載圖像,SD卡,該目錄保存在SQLite表。獲取路徑並在需要的地方檢索圖像。

String path = imageFile.getAbsolutePath(); 
Bitmap bitmap = BitmapFactory.decodeFile(path); 
imgView.setImageBitmap(bitmap); 
+0

我應該用什麼方法? – Ali