欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

android創(chuàng)建數(shù)據(jù)庫(kù)(SQLite)保存圖片示例

 更新時(shí)間:2014年01月11日 15:42:19   作者:  
這篇文章主要介紹了android創(chuàng)建數(shù)據(jù)庫(kù),保存圖片到數(shù)據(jù)庫(kù)再?gòu)臄?shù)據(jù)庫(kù)取圖片的方法,大家參考使用吧

復(fù)制代碼 代碼如下:

//1.創(chuàng)建數(shù)據(jù)庫(kù)
public class DBService extends SQLiteOpenHelper {

private final static int VERSION = 1;
private final static String DATABASE_NAME = "uniteqlauncher.db";

public DBService(Context context) {
    this(context, DATABASE_NAME, null, VERSION);
}

public DBService(Context context, String name, CursorFactory factory,
        int version) {
    super(context, name, factory, version);
}

@Override
public void onCreate(SQLiteDatabase db) {
    String sql = "CREATE TABLE [launcher]("
        + "[_id] INTEGER PRIMARY KEY AUTOINCREMENT,"
        + "[photo] BINARY)"; //保存為binary格式

    db.execSQL(sql);

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    if(newVersion > oldVersion){
        db.execSQL("DROP TABLE IF EXISTS[launcher]");
    } else {
        return;
    }
    onCreate(db);
}
}
//保存圖片到數(shù)據(jù)庫(kù)
public void savePhoto(Drawable appIcon, Context mContext){
LayoutInflater mInflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflater.inflate(R.layout.app_view, null);
ImageView iv = (ImageView) v.findViewById(R.id.appicon);
iv.setImageDrawable(appIcon);
String INSERT_SQL = "INSERT INTO launcher(photo) values(?)";
SQLiteDatabase db = mDBService.getWritableDatabase(); // 得到數(shù)據(jù)庫(kù)
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
((BitmapDrawable) iv.getDrawable()).getBitmap().compress(
CompressFormat.PNG, 100, baos);//壓縮為PNG格式,100表示跟原圖大小一樣
Object[] args = new Object[] {baos.toByteArray() };
db.execSQL(INSERT_SQL, args);
baos.close();
db.close();
} catch (Exception e) {
e.printStackTrace();
}

}

//3.從數(shù)據(jù)庫(kù)中取圖片
public void getPhoto() {
String SELECT_SQL = "SELECT photo FROM launcher";
ImageView appIcon = (ImageView) v.findViewById(R.id.appicon);//v是我在類中定義的一個(gè)view對(duì)象,跟前面保存圖片一樣
byte[] photo = null;
mDBService = new DBService(getContext());
SQLiteDatabase db = mDBService.getReadableDatabase();
Cursor mCursor = db.rawQuery(SELECT_SQL, null);
if (mCursor != null) {
if (mCursor.moveToFirst()) {//just need to query one time
photo = mCursor.getBlob(mCursor.getColumnIndex("photo"));//取出圖片
}
}
if (mCursor != null) {
mCursor.close();
}
db.close();
    ByteArrayInputStream bais = null;
if (photo != null) {
        bais = new ByteArrayInputStream(photo);
        appIcon.setImageDrawable(Drawable.createFromStream(bais, "photo"));//把圖片設(shè)置到ImageView對(duì)象中
}
    //appIcon顯示的就是之前保存到數(shù)據(jù)庫(kù)中的圖片
}

相關(guān)文章

  • Android Insets相關(guān)知識(shí)總結(jié)

    Android Insets相關(guān)知識(shí)總結(jié)

    這篇文章主要介紹了Android Insets相關(guān)知識(shí)總結(jié),幫助大家更好的理解和學(xué)習(xí)使用Android,感興趣的朋友可以了解下
    2021-03-03
  • Kotlin數(shù)據(jù)容器深入講解

    Kotlin數(shù)據(jù)容器深入講解

    Kotlin的數(shù)據(jù)容器分為數(shù)組和集合。其中集合分為集合Set、隊(duì)列List、映射Map等三種集合,每種又包括只讀和可變兩種類型,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2022-09-09
  • Android開發(fā)教程之初識(shí)Android App

    Android開發(fā)教程之初識(shí)Android App

    這篇文章主要為大家詳細(xì)介紹了Android開發(fā)教程之初識(shí)Android App的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-06-06
  • Android自定義控件之水平圓點(diǎn)加載進(jìn)度條

    Android自定義控件之水平圓點(diǎn)加載進(jìn)度條

    這篇文章主要為大家詳細(xì)介紹了Android自定義控件之水平圓點(diǎn)加載進(jìn)度條,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • Android開發(fā)EditText禁止輸入監(jiān)聽及InputFilter字符過(guò)濾

    Android開發(fā)EditText禁止輸入監(jiān)聽及InputFilter字符過(guò)濾

    這篇文章主要為大家介紹了Android開發(fā)EditText禁止輸入監(jiān)聽及InputFilter字符過(guò)濾示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Android二維碼創(chuàng)建實(shí)例

    Android二維碼創(chuàng)建實(shí)例

    這篇文章主要介紹了Android二維碼創(chuàng)建實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • Android編程之json解析實(shí)例詳解

    Android編程之json解析實(shí)例詳解

    這篇文章主要介紹了Android編程之json解析,結(jié)合實(shí)例形式較為詳細(xì)的分析了了Android針對(duì)json格式數(shù)據(jù)的創(chuàng)建、讀取與解析技巧,需要的朋友可以參考下
    2015-12-12
  • Android ShimmerLayout實(shí)現(xiàn)微光效果解析

    Android ShimmerLayout實(shí)現(xiàn)微光效果解析

    這篇文章主要為大家詳細(xì)介紹了Android ShimmerLayout實(shí)現(xiàn)微光效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • android 開發(fā)中使用okhttp上傳文件到服務(wù)器

    android 開發(fā)中使用okhttp上傳文件到服務(wù)器

    在開發(fā)android手機(jī)客戶端,常常會(huì)需要上傳文件到服務(wù)器,使用okhttp會(huì)是一個(gè)很好的選擇,它使用很簡(jiǎn)單,而且運(yùn)行效率也很高,下面小編給大家?guī)?lái)了android 開發(fā)中使用okhttp上傳文件到服務(wù)器功能,一起看看吧
    2018-01-01
  • Android編程中TextView寬度過(guò)大導(dǎo)致Drawable無(wú)法居中問(wèn)題解決方法

    Android編程中TextView寬度過(guò)大導(dǎo)致Drawable無(wú)法居中問(wèn)題解決方法

    這篇文章主要介紹了Android編程中TextView寬度過(guò)大導(dǎo)致Drawable無(wú)法居中問(wèn)題解決方法,以實(shí)例形式較為詳細(xì)的分析了TextView設(shè)置及xml布局與調(diào)用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-10-10

最新評(píng)論