如何在SQLite数据库中存储图像

如何在SQLite数据库中存储图像

在我的应用程序中,我从图片库上传一个图像,并希望将该图像存储在SQLite数据库中。如何在数据库中存储位图?我正在将位图转换为字符串,并将其保存在数据库中。当从数据库检索它时,我无法将该字符串分配给ImageView,因为它是一个字符串。

Imageupload 12.java:

 public class Imageupload12 extends Activity {
  Button buttonLoadImage;
  ImageView targetImage;
  int i = 0;
  Database database = new Database(this);
  String i1;
  String img;
  @Override  public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.main5);
   buttonLoadImage = (Button) findViewById(R.id.loadimage);
   targetImage = (ImageView) findViewById(R.id.targetimage);


   Bundle b = getIntent().getExtras();
   if (b != null) {
    img = b.getString("image");
    targetImage2.setImageURI("image");
    //i am getting error as i cant assign string to imageview.

   }

   buttonLoadImage.setOnClickListener(new Button.OnClickListener() {

    public void onClick(View arg0) {
     // TODO Auto-generated method stub
     Intent intent = new Intent(Intent.ACTION_PICK,
      android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
     Log.i("photo", "" + intent);
     startActivityForResult(intent, i);
     i = i + 1;
    }
   });

  }

   }

  }
 }


慕森王
浏览 2010回答 3
3回答

幕布斯7119047

你必须使用“BLOB”来存储图像。示例:将图像存储到db:public void insertImg(int id , Bitmap img ) {        byte[] data = getBitmapAsByteArray(img); // this is a function     insertStatement_logo.bindLong(1, id);            insertStatement_logo.bindBlob(2, data);     insertStatement_logo.executeInsert();     insertStatement_logo.clearBindings() ;}  public static byte[] getBitmapAsByteArray(Bitmap bitmap) {     ByteArrayOutputStream outputStream = new ByteArrayOutputStream();     bitmap.compress(CompressFormat.PNG, 0, outputStream);            return outputStream.toByteArray();}要从db检索图像:public Bitmap getImage(int i){     String qu = "select img  from table where feedid=" + i ;     Cursor cur = db.rawQuery(qu, null);     if (cur.moveToFirst()){         byte[] imgByte = cur.getBlob(0);         cur.close();         return BitmapFactory.decodeByteArray(imgByte, 0, imgByte.length);     }     if (cur != null && !cur.isClosed()) {         cur.close();     }            return null;}
打开App,查看更多内容
随时随地看视频慕课网APP