Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

public Drawable icon; \ Some value in this field

I am creating a database in SQLite Manager. I want to store icon into the database. Another field is shown correctly, but when I take the icon field with datatype BLOB, it doesn't display.

public void prettyPrint() {
public String appname = "asd";
public String pname = "asd";
public String versionName = "asd";
public int versionCode = 0;
public Drawable icon="android.im....";
Insall_app_db i1 = new Insall_app_db();
i1.createDatabse("appInfo3", getBaseContext());
i1.createTable("off_appinfo4", getBaseContext()); i1.insertDataUser("off_appinfo4",  appid ,appname,pname, versionName, versionCode, icon, x);
}


package com.AppInfo;

import java.sql.Blob;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;

import android.R.drawable;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.drawable.Drawable;

public class Insall_app_db {


SQLiteDatabase sampleDB = null;
String PhoneNumber;
String UserId;
Cursor c;
ArrayList ar=new ArrayList();
public void createDatabse(String DbName,Context context)
{
sampleDB =  context.openOrCreateDatabase(DbName,     
    context.MODE_WORLD_READABLE,null);

}

public void createTable(String Tablename,Context context)
{
    sampleDB.execSQL("CREATE TABLE IF NOT EXISTS " +
            Tablename +
            "(app_id INT,app_name VARCHAR(255),pname VARCHAR(255),version_name  VARCHAR(25),versionCode  INT,icon BLOB,date DATE);");

}
public void DeleteTable(String Tablename,Context context)
{
    sampleDB.execSQL("DROP TABLE off_appinfo4");

}

public void insertDataUser(String tableName,int app_id,String app_name,String pname,String version_name,int versionCode,String d,long date1)
{

     sampleDB.execSQL("INSERT INTO " +
             tableName +
             " Values ("+app_id+",'"+app_name+"','"+pname+"','"+version_name+"','"+versionCode+"','"+d+"',"+date1+");");


}

public String GetUserData(Context context,String tablename)
{
            c = sampleDB.rawQuery("SELECT User_Id FROM " +
                tablename +
                "", null);

            if(c!=null)
            {
                if(c.moveToFirst())
                {
                    do
                    {
                        UserId=c.getString(c.getColumnIndex("User_Id"));

                    }while(c.moveToNext());



                    }   

                }       

            return UserId;
}

public void close()
{
    sampleDB.close();

}




}
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
262 views
Welcome To Ask or Share your Answers For Others

1 Answer

You can convert your image into byte array and store that bytearray in blob filed in database. You can retrieve your image back from database as byte array.

How to get byte array from imageview:

ImageView iv = (ImageView) findViewById(R.id.splashImageView);
Drawable d = iv.getBackground();
BitmapDrawable bitDw = ((BitmapDrawable) d);
Bitmap bitmap = bitDw.getBitmap();
System.out.println(".....d....."+d);
System.out.println("...bitDw...."+bitDw);
System.out.println("....bitmap...."+bitmap);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] imageInByte = stream.toByteArray();

Store byte array in database:

ContentValues cv = new ContentValues();
cv.put(CHUNK, buffer); //CHUNK blob type field of your table
long rawId = database.insert(TABLE, null, cv); //TABLE table name

Retrieve image from byte array:

public static Bitmap convertByteArrayToBitmap(
    byte[] byteArrayToBeCOnvertedIntoBitMap)
{
    bitMapImage = BitmapFactory.decodeByteArray(
        byteArrayToBeCOnvertedIntoBitMap, 0,
        byteArrayToBeCOnvertedIntoBitMap.length);
    return bitMapImage;
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...