怎样获取数据库中的图片
下面来总结一下今天在做SinaWeibo这个项目的时候所遇到的问题。
问题:
这个不是我们自己写的数据库来储存图片,这里是利用Android给我们提供的数据库来对图片及其他音乐文件等。这里Android提供我们使用的不是直接对数据库进行操作而是使用ContentProvider来对数据库进行了封装,那么怎样来使用Contentprovider来查询我们需要的图片资源。
总结步骤如下:
1、首先我们的得到一个Contentprovider对象通过getContentResolver()函数得到
2、Cursorcursor=this.getContentResolver().query(uri,coluns,null,null,null);通过这个查询语句来得到我们需要查询的数据库列返回一个Cursor对象
3、接下来要做的事情是从这个Cursor中来得到需要查询的数据
if(cursor!=null){
intlenth=0;
while(cursor.moveToNext()){
//这个是个路径
Stringdata=cursor.getString(cursor
.getColumnIndex(MediaStore.Images.Thumbnails.DATA));
intimageId=cursor.getInt(cursor
.getColumnIndex(MediaStore.Images.Thumbnails.IMAGE_ID));
//我们把这个获得的图片资源放到一个集合中去储存
list_bitmap.add(BitmapFactory.decodeFile(data));
Log.d(TAG,"BitmapFactory.decodeFile(data)------------>"+BitmapFactory.decodeFile(data));
//image_id
list_imageId.add(imageId);
//注意:这是我在开发中获得的经验:就是我们在从数据库中加载图片资源的时候要注意我们不能过多的加载资源因为手机的内存是有限的所有我在下面对这个加载过程进行控制,不过这在真正的开发中这个得更加自己的需求来控制。。。。
i++;
if(i==5)
{
return;
}
}
4、接下来就是完成你的项目。。。