ذخیره ی عکس در دیتابیس
سلام دوستان ، من یک لیست ویو دارم که شامل یک imageView و یک textView هست . حالا می خوام از طریق دیتابیس و استفاده از SQLite Manager این لیست ویو رو دیتاهاش رو پر کنم. داخل SQLite Manager یک جدول درست کردم و براش ستون های imageView و textView رو ساختم ولی نمیدونم که چه طوری باید عکس ها رو بریزم توی جدول ؟ نوعش رو باید TEXT بزارم یا LONGBLOB ؟ عکس هام داخل فولدر drawable هستن الان . ممنون بچه هااا !!!
بچه هاااااااااااااا مشکلم خیلی ضروری هست :((((((

چندتا راه برای ذخیره عکس وجود داره،بنده پیشنهاد میکنم نوع تصویر رو text در نظر بگیری و با کد زیر اونرو در دیتا بیس ذخیر کن
private byte[] getBitmapToByte(Bitmap bmp, int quality) {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(CompressFormat.PNG, quality, stream);
return stream.toByteArray();
}
public void insertImage(Bitmap img) {
try {
byte[] data = getBitmapToByte(img, 100);
String encodedImage = Base64.encodeToString(data, Base64.DEFAULT);
query = "insert into image(data)" + "values('" + encodedImage + "')";
G.database.execSQL(query);
} catch (Exception e) {
Toast.makeText(G.context, G.ERROR_SYSTEM, Toast.LENGTH_LONG).show();
}
}
تو کد بالا من برای تصاویر یک جدول جدا در نظر گرفتم که شما میتونید بعنوان یک فیلد از جدول مد نظرتون قرارش بدین
امیدوارم پاسخ واضح بوده باشه

در روشی که کاربر reza ذکر کردند باعث میشه دیتابیس خیلی سنگین و حجیم بشه ،این موضوع زمانی که رکوردها زیاده خیلی محسوس است.
به نظرم اگر مسیر عکس های شما مشخص است (بر روی سرور یا در پوشه مشخصی مانند drawable یا در پوشه ای بر روی کارت حافظه) کافی است اسم عکس ها را در دیتابیس ذخیره کنید.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .