繁体   English   中英

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

[英]Android - How to retrieve and display Image from 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模拟器图库,选择图像,然后图像将显示在应用程序上。 然后,我单击“上传”按钮,它将其发送到数据库并上传

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

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


    }

您可以做的就是将图片存储在drawable文件夹中。

然后,您只需要将名称存储在数据库中,并借助此名称检索相应的图像。 它还将使您避免使用繁重的数据库文件。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM