a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 系統 > Android > 正文

android創建數據庫(SQLite)保存圖片示例

2020-04-11 11:57:21
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:

//1.創建數據庫
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);
}
}
//保存圖片到數據庫
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(); // 得到數據庫
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.從數據庫中取圖片
public void getPhoto() {
String SELECT_SQL = "SELECT photo FROM launcher";
ImageView appIcon = (ImageView) v.findViewById(R.id.appicon);//v是我在類中定義的一個view對象,跟前面保存圖片一樣
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"));//把圖片設置到ImageView對象中
}
    //appIcon顯示的就是之前保存到數據庫中的圖片
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 少妇黄色 | 最新中文字幕在线资源 | av中文在线 | 激情开心成人网 | 精品亚洲成人 | 亚洲日本乱码在线观看 | 欧美日韩亚洲二区 | 久久www免费视频 | 99亚洲精品 | 久久免费国产精品 | 国产成人精品免费 | 久久国产一区二区 | 欧美激情精品久久久久久 | 欧美日本三级 | 狠狠久久综合 | 久久中文字幕一区 | h视频在线免费观看 | 比利时xxxx性hd极品 | 2020国产在线 | 欧美日韩成人在线视频 | 日摸夜操 | 久久久久久国产精品 | 亚洲国产精品第一区二区 | 成人精品视频99在线观看免费 | 国产亚洲欧美精品永久 | 超碰97久久 | 蜜臀久久99精品久久久无需会员 | 久久精品国产免费看久久精品 | 99久久婷婷国产综合精品 | 97国产精品视频人人做人人爱 | 犬夜叉在线观看 | 爽死777影院 | 久久久免费观看视频 | 午夜在线视频免费观看 | 成人免费毛片高清视频 | 久久免费精品视频 | 亚洲男人的天堂在线播放 | 精品久久久久一区二区国产 | 欧美日韩在线观看一区 | 欧美日韩精品免费观看视频 | 精品视频一区二区三区 |