这是一个写好的调用语句和方法,insertdb()是写好的方法,可以稍加修改后放入你的Activity页面或fragment页面,调用语句如图。
//你的图片在andriod studio中是存在R.drawble中的,并且是int型的
//存入数据库的id是自己定义数据库时设计好的,可以参考我的数据库代码
insertdb( R.drawable.你的图片名,存入数据库的id);
//s指你的图片资源,int型,即R.drawable.你的图片名
private void insertdb(int s,int id){
//把你的图片资源转化成位图
Bitmap bitmap = BitmapFactory.decodeResource(this.getResources(), s);
//Mysql是自己写的数据库类,需要自己编写,下面两句话是实例化一个sqlite数据库对象
Mysql mySqlLite = new Mysql(this);
SQLiteDatabase database = mySqlLite.getReadableDatabase();
//设置一个size大小,用来压缩图片文件
int size = bitmap.getWidth() * bitmap.getHeight() * 4;
//ByteArrayOutputStream(字节数组输出流)对byte类型数据进行写入的类,属于内存操作流
ByteArrayOutputStream baos= new ByteArrayOutputStream(size);
//压缩位图bitmap
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
//定义一个byte类型的数组bytedata存储位图字节流转化成的byte数组
byte[] bytedata = baos.toByteArray();
//sql语句是根据自己需求写的,不要照抄
database.execSQL("update 你的表名 set image=? where _id=?",new Object[] {bytedata,id});
}