2011-05-18 55 views

回答

9
package com.examples.aMySQL2; 

import android.app.Activity; 
import android.content.ContentValues; 
import android.content.Context; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteCursor; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.ImageView; 
import android.widget.TextView; 


//Reading lines from a file 
import java.io.BufferedInputStream; 
import java.io.BufferedReader; 
import java.io.ByteArrayInputStream; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.FileReader; 
import java.io.IOException; 
import java.io.InputStream; 
import java.net.URL; 
import java.net.URLConnection; 

import org.apache.http.util.ByteArrayBuffer; 


public class aMySQL2Activity extends Activity implements OnClickListener 
{ 
    protected static TextView textView; 
    protected static ImageView bmImage; 
    protected Button start; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     bmImage = (ImageView)findViewById(R.id.imageView1); 
     textView = (TextView) findViewById(R.id.textView1); 

     start = (Button) findViewById(R.id.button1); 
     start.setOnClickListener(this); 

    DownloadFile(); 


    } 
    // /data/data/<package_name>/databases -путь к базе данных по умолчанию 
    // "/data/data/com.examples.aMySQL2/databases/MyDB.db" //-путь к базе данных по умолчанию 
    // "/sdcard/Nick/MyDB.db" 
    // "/mnt/sdcard/Nick/MyDB.db" 
    /// Android/data/<package_name>/files/ 
    public void onClick(View v) 
    { 
    SQLiteDatabase myDb;  
    String MySQL; 
    int icount; 
    byte[] byteImage1 = null; 
    byte[] byteImage2 = null; 
     MySQL="create table emp1(_id INTEGER primary key autoincrement, fio TEXT not null, picture BLOB);"; 
     myDb = openOrCreateDatabase("/sdcard/Nick/MyWeatherDB.db", Context.MODE_PRIVATE, null); 
    //  myDb.execSQL(MySQL); 
    String s=myDb.getPath(); 
    textView.append("\r\n" + s+"\r\n");  
     myDb.execSQL("delete from emp1"); 
     ContentValues newValues = new ContentValues(); 
    newValues.put("fio", "Иванов Петр Сергеевич"); 

/////////// insert picture to blob field ///////////////////// 
    try 
    { 
    FileInputStream instream = new FileInputStream("/sdcard/Nick/weather.png"); 
    BufferedInputStream bif = new BufferedInputStream(instream); 
    byteImage1 = new byte[bif.available()]; 
    bif.read(byteImage1); 
textView.append("\r\n" + byteImage1.length+"\r\n"); 
    newValues.put("picture", byteImage1); 

    long ret = myDb.insert("emp1", null, newValues); 
    if(ret<0) textView.append("\r\n!!! Error add blob filed!!!\r\n"); 
    } catch (IOException e) 
    { 
     textView.append("\r\n!!! Error: " + e+"!!!\r\n"); 
    } 

////////////Read data //////////////////////////// 
Cursor cur = myDb.query("emp1",null, null, null, null, null, null); 
    cur.moveToFirst(); 
    while (cur.isAfterLast() == false) 
    { 
     textView.append("\r\n" + cur.getString(1)+"\r\n"); 
     cur.moveToNext(); 
    } 
///////Read data from blob field//////////////////// 
    cur.moveToFirst(); 
    byteImage2=cur.getBlob(cur.getColumnIndex("picture")); // ИМЕННО ТАК!!! 
bmImage.setImageBitmap(BitmapFactory.decodeByteArray(byteImage2, 0, byteImage2.length)); 
    textView.append("\r\n" + byteImage2.length+"\r\n"); 
//////////////////////////  
    cur.close(); 
    myDb.close(); 
    } 

    public void DownloadFile() 
    { 
     Bitmap bitmap1 = null;      
     bitmap1 = BitmapFactory.decodeFile("/sdcard/Nick/saranka.jpg"); //weather.png"); 
     bmImage.setImageBitmap(bitmap1); 
    } 


} 
+0

谢谢你的工作。 – 2011-05-18 07:49:27

+0

我如何下载超过10张图片 – user915267 2012-08-09 09:54:29

1

你必须存储图像的完整url在按钮上点击数据库。 此外,只需使用该URL通过从数据库获取url来绘制图像。

button1.setOnClickListener(new OnClickListener() { 

    public void onClick(View v) { 
      // insert url of the image into the database here 
     } 
} 

希望这会给你一些关于这个问题的想法。