Вставка изображения из информации SQL - PullRequest
1 голос
/ 22 декабря 2010

Что делает 'howard.jpg' в приведенной ниже инструкции sql и как мне вставить изображение в мое приложение для Android?

CREATE TABLE IF NOT EXISTS employee ( 
    _id INTEGER PRIMARY KEY AUTOINCREMENT, 
    firstName VARCHAR(50), 
    lastName VARCHAR(50), 
    title VARCHAR(50), 
    department VARCHAR(50), 
    managerId INTEGER, 
    city VARCHAR(50), 
    officePhone VARCHAR(30), 
    cellPhone VARCHAR(30),  
    email VARCHAR(30), 
    picture VARCHAR(200)) 



    INSERT INTO employee VALUES(1,'Ryan','Howard','Vice President, North East', 
'Management', NULL, 'Scranton','570-999-8888','570-999-8887','ryan@dundermifflin.com','howard.jpg')

Ответы [ 3 ]

0 голосов
/ 22 декабря 2010

Чтобы сохранить файл изображения внутри вашей базы данных sqlite, вы должны использовать поле BLOB и из-за ограничений Android Qulite вы должны хранить информацию следующим образом:

ContentValues cv = new ContentValues();
//your table fields goes here
...
// adding the bitmap in byte array way to the blob field
ByteArrayOutputStream out = new ByteArrayOutputStream();
friendInfo.getImage_bmp().compress(Bitmap.CompressFormat.PNG, 100,out);
cv.put("avatar_img", out.toByteArray());
db.insert(TABLE_NAME, null, cv);

и прочитать его вы можете:

byte[] blob = cur.getBlob(cur.getColumnIndex("avatar_img"));
Bitmap bmp = BitmapFactory.decodeByteArray(blob, 0,blob.length, opts);
friend.setImage_bmp(bmp);

friend является экземпляром класса, имеющим свойство Bitmap callend Image_bmp;)

0 голосов
/ 17 января 2011

Я пробовал много способов получить эту работу, но пока я не сделал

cur.moveToFirst(); 

после запроса, у меня был нулевой указатель здесь:

byte[] imageByteArray = cur.getBlob(cur.getColumnIndex("myImage"));
0 голосов
/ 22 декабря 2010

'howard.jpg' - это просто строка, которая помещается в столбец varchar. Вы должны использовать BLOB вместо varchar для jpg и указывать не имя картинки, а фактические байты. Для получения более подробной информации см. здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...