如何在sqlite数据库中存储图像并显示它们?

时间:2011-11-14 08:52:10

标签: android sqlite

在我的应用程序中,我需要在Android中显示问题和图像。我已经在sqlite db中存储了问题并显示它们。我在assets文件夹中创建了一个文件夹DBimages。现在我的所有图像都在DBimages文件夹中。

我创建了两个类。我能够从本地sqlite db显示问题和选项,但我无法显示存储在assets\DBimages\abc.png中的图像。

所有图像的名称都存储在sqlite db表的pictures列中。但是如何显示与该特定问题相关的图像。请帮我解决这个问题。

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 个答案:

答案 0 :(得分:2)

有些丑陋的方式,将图像存储在SQLite数据库中。 只需将图像存储在SD卡中,并将这些图像的相关路径保存在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.

答案 1 :(得分:0)

我遇到了同样的问题,我想首先澄清这一点,在图库中存储图像路径或uri作为字符串在填充或向listview特定图像显示数据时可能无法提供良好的结果。您需要将图像存储在sqlite数据库中作为BLOB数据类型,并且需要将图像作为字节插入到DB中。

在我的情况下,我尝试使用图库中的图像路径但从未对我工作过。 仅当您使用网站的网址时,图片路径才适用

您可以在此link

中看到一个示例