2012-02-09 70 views
0

大家好,我一直在關注本教程:http://coenraets.org/blog/android-samples/androidtutorial/。我從中得到了所需,但現在我遇到了一個問題。 基本上,我需要的是能夠爲每個員工添加一張照片。我想要創建列表上的縮略圖圖片和詳細信息頁面上的全尺寸照片。 我該怎麼做?將圖像添加到ListView項目和細節

我試圖在

String sql = "CREATE TABLE IF NOT EXISTS employee (" + 
         "_id INTEGER PRIMARY KEY AUTOINCREMENT, " + 
         "firstName TEXT, " + 
         "lastName TEXT, " + 
         "title TEXT, " + 
         "officePhone TEXT, " + 
         "cellPhone TEXT, " + 
         "email TEXT, " + 
         photo IMAGE," + "managerId INTEGER)"; 
     db.execSQL(sql); 

然後我說values.put("photo", "@drawable/icon");數據庫中添加照片標記。

然後在EmployeeDetails我加入這一行:

photo = (ImageView) findViewById(R.id.image); 
photo.setTag(cursor.getString(cursor.getColumnIndex("photo"))); 

我當然進口ImageViewprotected ImageView photo; 和對細節的佈局我說:

<ImageView 
     android:id="id/image 
     android:layout_width="wrap_content" 
     android:layout_heigh=wrap_content 

問我沒有設法讓自己清楚。 我正在試圖爲員工的詳細信息部分放一張照片我並沒有試圖製作縮略圖,但事情是,我做了所有事情,並且它沒有錯誤地出來,但是當我運行它時,應用程序崩潰。使用BLOB存儲和retriving從數據庫映像

+0

在你的sql中使用blob來存儲圖像.. – 2012-02-09 13:15:10

+0

@AnandTiwari對不起,但我該怎麼做? – FirstLaw 2012-02-09 16:26:16

+0

@AnandTiwari加上我不介意使用可繪製圖像,我只是想要一種方式來鏈接圖像到數據庫中的項目 – FirstLaw 2012-02-09 16:33:15

回答

0

this會給一個更好的主意:

您還可以存儲資產以dB爲文本文件夾路徑,並用它來從SQL檢索路徑: 那麼你的SQL:

String sql = "CREATE TABLE IF NOT EXISTS employee (" + 
        "_id INTEGER PRIMARY KEY AUTOINCREMENT, " + 
        "firstName TEXT, " + 
        "lastName TEXT, " + 
        "title TEXT, " + 
        "officePhone TEXT, " + 
        "cellPhone TEXT, " + 
        "email TEXT, " + 
        "photo Text," + 
        "managerId INTEGER)"; 
    db.execSQL(sql); 

,那麼你可以從資產文件夾獲取繪製:

Drawable d = Drawable.createFromStream(getAssets().open("path_from_db"), null); 
img.setBackgroundResource(d); 
+0

'' '字符串SQL =「CREATE TABLE IF NOT EXISTS僱員(」 + \t \t \t \t \t \t 「_id INTEGER PRIMARY KEY AUTOINCREMENT,」 + \t \t \t \t \t \t 「名字文本,」 + \t \t \t \t \t \t 「姓氏TEXT,」 + \t \t \t \t \t \t 「圖像TEXT,」 + \t \t \t \t \t \t 「標題文本,」 + \t \t \t \t \t \t 「officePhone TEXT,」 + \t \t \t \t \t \t 「手機短信,」 + \t \t \t \t \t \t 「電子郵件文本,」 + \t \t \t \t \t \t 「INTEGER經理ID)」; \t \t db.execSQL(sql);' 'values.put(「firstName」,「John」); \t \t values.put(「lastName」,「Smith」); values.put(「image」,「@ assets/cook_default」; .... etc etc' – FirstLaw 2012-02-13 15:05:52

+0

對於格式我很抱歉,我不知道發生了什麼,我認爲我的主要問題是這裏... ' image.setTag(cursor.getString(cursor.getColumnIndex(「image」))); \t'getColumnIndex不適用於圖像視圖....但我不知道如何讓它進入我的數據庫,並從資產文件夾中檢索我的圖像 – FirstLaw 2012-02-13 15:08:18

+0

你是對的,你沒有任何名稱圖像的列,看看上面你使用那裏照片,在創建表語句... – 2012-02-14 05:27:04

0

這取決於其中圖像正在添加來回米 嘗試thisthis,但我也有問題將圖像從字符串轉換爲可繪製。

+0

我其實不想使用blob或將圖片添加到sql,我想把它們放在自己的圖片上,並將它們鏈接到每個員工的id。必須有辦法,並感謝您的幫助,真的很感激! – FirstLaw 2012-02-12 19:05:50