데이터베이스에 이미지를 저장할 수 있습니다. 내가 지금 가지고있는 문제는 그것을 검색하여 코드에서 사용하는 것입니다. 내 데이터베이스 핸들러에서SQLite 데이터베이스에서 단일 이미지를 검색하는 방법
봐는 방법을 얻을 :
이 내 이미지 활동 public class ImageClass {
int _id;
byte[] _image;
String _state_name;
public ImageClass(){
}
public ImageClass(int state_id,String state_name, byte[] state_image) {
this._id = state_id;
this._state_name = state_name;
this._image = state_image;
}
public ImageClass(String state_name, byte[]state_image){
this._state_name = state_name;
this._image = state_image;
}
public ImageClass(int state_id, byte[]state_image){
this._id = state_id;
this._image= state_image;
}
public int get_id() {
return this._id;
}
public void set_id(int state_id) {
this._id = state_id;
}
public byte[] get_image() {
return this._image;
}
public void set_image(byte[] state_image) {
this._image = state_image;
}
public String get_state_name() {
return this._state_name;
}
public void set_state_name(String set_state_name) {
this._state_name = set_state_name;
}
그것입니다
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ImageClass imageClass = db.getImage();
byte[]in = imageClass._image;
Bitmap imah = Utils.getImage(in);
img.setImageBitmap(imah);
}
});
} catch(IOException e) {
System.out.println(e);
}
}
내가 주요 활동에 사용되는 코드에서
ImageClass getImage(int state_id) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(DATABASE_TABLE_NAME, new String[]{STATE_ID, STATE_NAME, STATE_IMAGE}, STATE_ID + "=?",
new String[]{String.valueOf(state_id)}, null, null, null, null);
if (cursor != null);
cursor.moveToFirst();
ImageClass imageClass = new ImageClass(Integer.parseInt(cursor.getString(0)),
cursor.getString(1), cursor.getBlob(1));
cursor.close();
return imageClass;
}
봐 .. 그 이후로 정말 절망적이었습니다. 이
오른쪽 방법은 데이터베이스에서 이미지 경로 대신 이미지 파일 –
이 합의를 저장하는 것입니다. SQLite에 큰 blob을 저장하는 것은 권장되지 않습니다. – CommonsWare
위의 코멘트를 첨부하십시오. 앱의 [내부 저장소] (https://developer.android.com/guide/topics/data/data-storage.html#filesInternal) 폴더에 이미지를 저장하고 대신 데이터베이스에 파일 경로에 대한 참조를 저장하십시오. –