JPG является форматом с потерями: https://en.wikipedia.org/wiki/JPEG
JPEG (/ dʒeɪpɛɡ / JAY-peg) 1 - широко используемый метод сжатия с потерями для цифровых изображений, особенно для изображений, созданных цифровой фотографией. Степень сжатия может быть скорректирована, что позволяет выбирать компромисс между размером хранилища и качеством изображения. JPEG обычно достигает сжатия 10: 1 с незначительной потерей качества изображения.
blockquote>Решение: используйте формат потерь, например PNG, чтобы сохранить изображение.
Кажется, проблема в том, что вы создаете только один экземпляр вашего объекта Profile
перед циклом и добавляете только этот экземпляр в свой список в цикле.
Измените код следующим образом:
public ArrayList getAllProfile()
{
db = this.getWritableDatabase();
Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_USER, null);
if (cursor != null)
{
ArrayList<Profile> profiles = new ArrayList<>();
for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext() )
{
Profile profile = new Profile(); // create a new instance in your loop, instead only creating one instance before the loop
profile.setId(cursor.getInt(cursor.getColumnIndex(ID)));
profile.setFirstName(cursor.getString(cursor.getColumnIndex(FIRST_NAME)));
profile.setLastName(cursor.getString(cursor.getColumnIndex(LAST_NAME)));
profile.setFatherName(cursor.getString(cursor.getColumnIndex(FATHER)));
profile.setAge(cursor.getInt(cursor.getColumnIndex(AGE)));
profile.setEmail(cursor.getString(cursor.getColumnIndex(EMAIL)));
profile.setGender(cursor.getInt(cursor.getColumnIndex(GENDER)));
profile.setPhoneNumber(cursor.getString(cursor.getColumnIndex(PHONE_NUMBER)));
profiles.add(profile);
App.myLog("is : " +profile.getFirstName());
}
cursor.close();
return profiles;
}
if(cursor != null)
{
cursor.close();
return null;
}
}