2010-11-29 6 views
1

i ont le code folloing:image du magasin dans sqlite

final Gallery g = (Gallery) findViewById(R.id.gallery); 
g.setAdapter(new ImageAdapter(this)); 
g.setOnItemClickListener(new OnItemClickListener() { 

     public void onItemClick(AdapterView parent, View v, int position, long id) { 

     final ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); 
     Bitmap b = null; 
     b=BitmapFactory.decodeResource(getResources(),*********); 

     b.compress(CompressFormat.PNG, 0, outputStream); 
     AlertDialog.Builder builder = new AlertDialog.Builder(Edit.this); 
     builder.setTitle("Comfirm"); 
     builder.setMessage("Do you want to choose this picture?"); 
     builder.setPositiveButton("Continue", new DialogInterface.OnClickListener() { 

      public void onClick(DialogInterface dialog, int which) { 
              image = outputStream.toByteArray(); 

        }       
       }); 

Comme vous le voyez ***** doit être un entier comme android.R.drawble.icon. Je veux stocker l'image lorsque les utilisateurs cliquent sur l'image. Comment puis-je obtenir l'image lorsque l'utilisateur clique dessus?

Répondre

0

AdapterView.getItemAtPosition(int position) retournera l'objet à cette position dans AdapterView. Si ma supposition que cet objet est une sorte de Drawable alors vous pouvez utiliser la réponse here pour convertir le Drawable en Bitmap. Une fois que vous avez la BitMap vous pouvez faire ce qui suit pour obtenir un byte[]

int size = bitmap.getWidth() * bitmap.getHeight(); 
ByteArrayOutputStream out = new ByteArrayOutputStream(size); 
bitmap.compress(Bitmap.CompressFormat.PNG, 100, out); 
try { 
out.flush(); 
out.close(); 
} catch (IOException e) { 
e.printStackTrace();} 
byte[] x = out.toByteArray()); 

Vous pouvez ensuite stocker le byte[] comme blob dans SQLite.

0
function createDatabase() 
{ 
     try{ 
      if(window.openDatabase){ 
       var shortName  = 'db_edentiti'; 
       var version   = '1.0'; 
       var displayName  = 'Edentiti Information'; 
       var maxSize   = 65536; // in bytes 
       db     = openDatabase(shortName, version, displayName, maxSize); 
      } 
     }catch(e){ 
      alert(e); 
     } 
    } 

function executeQuery($query,callback){ 
    try{ 
     if(window.openDatabase) { 

      db.transaction(
        function(tx){ 
         tx.executeSql($query,[],function(tx,result){ 
          if(typeof(callback) == "function"){ 
           callback(result); 
          }else{ 
           if(callback != undefined){ 
            eval(callback+"(result)"); 
           } 
          } 

         },function(tx,error){}); 
        }); 
      return rslt; 
     } 
    }catch(e){} 
} 

function createTable() 
{ 
     var sql = 'drop table image'; 
     executeQuery(sql); 
     var sqlC = 'CREATE TABLE image (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, image BLOB)'; 
     executeQuery(sqlC); 
    } 
function insertValue() 
{ 
    var img = document.getElementById('image'); 
    var sql = 'insert into image (name,image) VALUES ("sujeet","'+img+'")'; 
    executeQuery(sql,function(results){alert(results)}); 
} 

    <input type="button" name='create' onClick="createDatabase()" value='Create Database'> 
    <input type="button" name='create' onClick="createTable()" value='create table'> 
    <input type="button" name='insert' onClick="insertValue()" value='Insert value'> 
    <input type="button" name='select' onClick="showTable()" value='show table'> 
    <input type="file" id="image" > 
    <div result></div> 

Pour info détails et visite de la solution lien ci-dessous:

http://blog.developeronhire.com/create-sqlite-table-insert-into-sqlite-table/

Merci