DrawableをSQLiteへ保存/読み出し

というわけで、上記コードをあれこれして Drawableを SQLiteへ保存/読み出しができるようになったのが下記のコード。

public long insert(MyData myData) {
    ContentValues values = new ContentValues();
    values.put(COLUMN_IMAGE, getByteArrayFromDrawable(myData.Image));
    return db.insert(TABLE_NAME, null, values);
}

public List<MyData>  findAll() {
    List<MyData> myDataList = new ArrayList<MyData>();
    Cursor cursor = db.query(TABLE_NAME, TABLE_COLUMNS, null, null, null, null, COLUMN_INDEXNUM);
    while(cursor.moveToNext()) {
        MyData myData = new MyData();
        myData.Image = getDrawableFromByteArray(cursor.getBlob(cursor.getColumnIndex(COLUMN_IMAGE)));
        myDataList.add(myData);
    }
    return myDataList;
}

// ByteArray を Drawable に変換
public Drawable getDrawableFromByteArray(byte[] b) {
    return new BitmapDrawable(BitmapFactory.decodeByteArray(b, 0, b.length));
}

// Drawable を ByteArray に変換
public byte[] getByteArrayFromDrawable(Drawable d) {
    Bitmap bitmap = ((BitmapDrawable)d).getBitmap();
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
    byte[] bitMapData = stream.toByteArray();
    return bitMapData;
}

かなり端折ってるけど、変換の部分は大体わかると思う。
MyDataにはもっとメンバがあるけど、とりあえず Imageの部分だけ。