2011-03-24 33 views
1

我在我的代碼中存在一個問題,我正在存儲從學生名稱,年齡和圖片訪問學生數據從sqlite數據庫。我將所有這些數據完美存儲,但不能只訪問圖像字段。從Sqlite數據庫Aceessing圖像

圖片在屏幕上顯示空白,

我不知道爲什麼。請檢查我的代碼,並給我有用的建議。

謝謝。

這裏是代碼:

package com.ex.imageStore; 

import java.util.Locale; 

import android.app.Activity; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
import android.graphics.BitmapFactory; 
import android.os.Bundle; 
import android.widget.ImageView; 
import android.widget.TextView; 

public class NewScreen extends Activity{ 
     SQLiteDatabase db; 

    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.newscreen); 
     TextView name = (TextView)findViewById(R.id.textView1); 
     TextView age = (TextView)findViewById(R.id.textView2); 
     ImageView img = (ImageView)findViewById(R.id.imageView1); 

     db = openOrCreateDatabase(
       "StudentData.db" 
       , SQLiteDatabase.CREATE_IF_NECESSARY 
       , null 
       ); 

     db.setVersion(1); 
      db.setLocale(Locale.getDefault()); 
      db.setLockingEnabled(true); 

      Cursor cur = db.query("stuData", 
        null, null, null, null, null, null); 
       //cur.moveToFirst(); 
      cur.moveToPosition(0); 
      name.setText(cur.getString(1)); 
      age.setText(cur.getString(2)); 
      byte[] bb = cur.getBlob(3); 
Bitmap theImage = BitmapFactory.decodeByteArray(bb,0,bb.length); 
      img.setImageBitmap(theImage);//-->It //cannot convert bytearray to bitmap 
       /* while (cur.isAfterLast() == false) { 
        tv.append("n" + cur.getString(1)); 
        cur.moveToNext(); 
       }*/ 
       cur.close(); 


    } 

}

theImage變量總是指派爲空.........

+0

你如何確保圖像被保存在數據庫中? – 2011-03-24 06:52:10

回答

1

轉換的byte[] bbByteArrayInputStream。對於你的程序,這將是

ByteArrayInputStream is = new ByteArrayInputStream(bb); 
Bitmap theImage = BitmapFactory.decodeStream(is); 
ImageView img = (ImageView)findViewById(R.id.imageView1); 
img.setImageBitmap(theImage); 

我認爲這將幫助你。