2012-02-09 99 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