Android - 如何从sqlite检索和显示图像?

时间:2015-11-12 01:28:37

标签: android sqlite

所以对于我的Android应用程序,我可以将图像作为字符串插入sqlite。但我不确定我究竟如何从数据库中检索此图像并将其从字符串转换为图像并将其显示在我的应用程序中。坚持数周,帮助赞赏! :(

按钮单击将图像保存到sqlite

  upload.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


            Student student = new Student(profadmin.getText().toString());
            student.setImageUri(ImageUri);
            stud.updateImage(student);
            Toast passes = Toast.makeText(ProfileActivity.this, "Profile Picture has been updated", Toast.LENGTH_SHORT);
            passes.show();

        }
    });

数据库处理程序:

public int updateImage(Student student) {
    SQLiteDatabase db = getWritableDatabase();

    ContentValues values = new ContentValues();

    values.put(STUDENT_IMAGEURI, student.getImageUri().toString());


    int rowsAffected = db.update(STUDENT_TABLE, values, STUDENT_ADMINNO + "=?", new String[]{String.valueOf(student.getAdminNo())});
    db.close();

    return rowsAffected;
}

编辑:通过单击空的ImageView(profileIV)上载图像,打开android模拟器库,选择图像,然后图像将显示在应用程序上。然后我点击“上传”#39;按钮,它将其发送到数据库并上传

public void onActivityResult(int reqCode,int resCode,Intent data){

    if(resCode==RESULT_OK){
        if(reqCode==1){
            ImageUri = data.getData();
            profileIV.setImageURI(data.getData());
        }


    }

2 个答案:

答案 0 :(得分:0)

您可以将照片存储在drawable文件夹中。

然后,您只需将名称存储在数据库中,并检索相应的图像。它还可以避免繁重的DB文件。

答案 1 :(得分:0)

为什么需要将图像存储到数据库中?这不是一个好选择。 如果必须将图像存储到数据库中,可以使用Base64对图像进行编码,并将结果字符串存储到数据库中。所以你可以解码字符串到图像。但这种方式会导致大图像出现问题。

我建议您使用磁盘缓存存储图像。