Изображение, хранящееся в базе данных sqlite
изображение хранится в базе данных sqlite, но не извлекается в CircleimageView
Что я уже пробовал:
1. DatabaseHelper.class
public void insertImage(byte[] imageBytes) { SQLiteDatabase db = this.getReadableDatabase(); ContentValues cv = new ContentValues(); cv.put(IMAGE, imageBytes); db.insert(TABLE_NAME, null, cv); } public byte[] retreiveImageFromDB() { SQLiteDatabase db = this.getReadableDatabase(); Cursor cur = db.query(true, TABLE_NAME, new String[]{IMAGE}, null, null, null, null, COL_1 + " DESC", "1" ); if (cur.moveToFirst()) { byte[] blob = cur.getBlob(cur.getColumnIndex("IMAGE")); cur.close(); return blob; } cur.close(); return null; }
2.Utils.class
public static byte[] getImageBytes(Bitmap bitmap) { ByteArrayOutputStream stream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream); return stream.toByteArray(); } public static Bitmap getImage(byte[] image) { return BitmapFactory.decodeByteArray(image, 0, image.length); } public static byte[] getBytes(InputStream inputStream) throws IOException { ByteArrayOutputStream byteBuffer = new ByteArrayOutputStream(); int bufferSize = 1024; byte[] buffer = new byte[bufferSize]; int len = 0; while ((len = inputStream.read(buffer)) != -1) { byteBuffer.write(buffer, 0, len); } return byteBuffer.toByteArray(); }
3.ProfileFragment.class
<pre>Boolean saveImageInDB(Uri selectedImageUri) { try { //databaseHelper.onOpen(null); InputStream iStream = getActivity().getContentResolver().openInputStream(selectedImageUri); byte[] inputData = Utils.getBytes(iStream); databaseHelper.insertImage(inputData); //databaseHelper.close(); return true; } catch (IOException ioe) { Log.e(TAG, "<saveImageInDB> Error : " + ioe.getLocalizedMessage()); //databaseHelper.close(); return false; } } Boolean loadImageFromDB() { try { //databaseHelper.onOpen(null); byte[] bytes = databaseHelper.retreiveImageFromDB(); //databaseHelper.close(); // Show Image from DB in ImageView circleView.setImageBitmap(Utils.getImage(bytes)); return true; } catch (Exception e) { Log.e(TAG, "<loadImageFromDB> Error : " + e.getLocalizedMessage()); //databaseHelper.close(); return false; } }
David Crow
В чем именно заключается проблема? Вы только что показали кучу кода без сопроводительного текста, подробно описывающего, в чем проблема, что вы пробовали или что (не) показывается. Есть ли какие-то исключения? Вы прошли через код с помощью отладчика?
ZurdoDev
Почему это не работает? Отладьте свой код.
Android_Virus
Проблема в том, когда я двигаюсь дальше HomeFragment.class и вернись приди к своему ProfileFragment.class изображение было автоматически удалено @David Crow
David Crow
- Проблема в том, когда я двигаюсь дальше. HomeFragment.class-да..."
Что именно означает "двигаться дальше" в контексте Java-кода?
"...изображение было автоматически удалено"
Откуда же?
Android_Virus
Изображение удалено из книги
Android_Virus
проблема решена мной
и еще одна ошибка произошла при смене моей фотографии тогда изменчивая фотография была изменена во втором аккаунте
Мин У меня есть 2 зарегистрированных аккаунта и я меняю фотографию в 1 аккаунте затем это также изменение во втором аккаунте
David Crow
В чем заключается ценность selectedImageUri
перед вызовом insertImage()
?
Если у вас должен быть только один аккаунт, может быть, это потому, что insertImage()
это вызов insert()
скорее, чем update()
?