Как хранить изображения в базе данных sqlite и отображать их? - PullRequest
1 голос
/ 14 ноября 2011

В моем приложении мне нужно отображать вопросы вместе с изображениями в Android. Я храню вопросы в sqlite db и отображаю их. Я создал папку DBimages в папке активов. Теперь все мои изображения находятся в папке DBimages.

Я создал два класса. Я могу отобразить вопрос и параметры из локальной базы данных sqlite, но не могу отобразить изображение, которое хранится в assets\DBimages\abc.png.

Имена всех изображений хранятся в столбце рисунков в таблице sqlite db. Но как отобразить картинку, связанную с этим конкретным вопросом. Пожалуйста, помогите мне в этом.

UserBO.java

public String getQuestion() {
return question;
}
public void setQuestion(String question) {
this.question = question;
}
public String getImage() {
return pictures;
}

public void setImage(String pictures) {
this.pictures = pictures;
}

Select.java

ArrayList<UserBO> usersList = new ArrayList<UserBO>();
for (int i = 0; i < stringList.size(); i++) {
ArrayList<String> list = stringList.get(i);
UserBO user = new UserBO();
try {
user.id = Integer.parseInt(list.get(0));
user.name = list.get(2);
user.question = list.get(3);
user.option1 = list.get(4);
user.option2 = list.get(5);
user.option3 = list.get(6);
user.option4 = list.get(7);
user.option5 = list.get(8);
user.pictures = list.get(9);
user.answer = (list.get(10));
} 
catch (Exception e){}
public View getView(int position, View convertView, ViewGroup parent){
View view = convertView;
try{
if (view == null) {
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = vi.inflate(R.layout.list_item, null); 
}
final UserBO listItem = mList.get(position);                
if (listItem != null) {
( (TextView) view.findViewById(R.id.tv_question) ).setText( listItem.getQuestion()+"");
((ImageView) view.findViewById(R.id.imageView1)).setImageResource(R.drawable.f);
( (RadioButton) view.findViewById(R.id.option1) ).setText( listItem.getOption1() );
( (RadioButton) view.findViewById(R.id.option2) ).setText( listItem.getOption2()+"" );
( (RadioButton) view.findViewById(R.id.option3) ).setText( listItem.getOption3()+"" );
( (RadioButton) view.findViewById(R.id.option4) ).setText( listItem.getOption4()+"" );
( (RadioButton) view.findViewById(R.id.option5) ).setText( listItem.getOption5()+"" );
}}catch(Exception e){}
return view;

} }

Ответы [ 2 ]

2 голосов
/ 14 ноября 2011

Какой-то уродливый способ хранения изображений в базе данных SQLite. Просто сохраните изображения в SDCard и сохраните соответствующий путь к этим изображениям в базе данных SQLite.

In your need, put the images in either drawable folder or in asset folder then store its
name(with question ID or number also) in SQLite and use it in application.
0 голосов
/ 07 февраля 2017

У меня была такая же проблема, и я хочу сначала прояснить это, сохраняя путь к изображению или URI из галереи, так как строка может не дать хороших результатов при заполнении или отображении данных для просмотра списка определенных изображений. Вам необходимо хранить изображения в базе данных sqlite в виде BLOB-типов данных и вставлять изображение в БД в виде байтов.

В моем случае я пытался работать с путем к изображению из галереи, но никогда не работал от меня. Путь к изображению подходит, когда только вы используете URL-адреса с веб-сайта

Вы можете увидеть пример из этой ссылки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...