android SQLite (Cursor SQLiteDatabase SQLiteOpenHelper ContentValues ContentProvider) 总结

本文介绍如何在Android中使用SQLite查询图片及其自动生成的缩略图路径。通过具体代码示例展示了利用ContentResolver和Cursor进行外部内容URI的查询过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一直在零零碎碎的用着SQLite,包括什么Cursor SQLiteDatabase SQLiteOpenHelper ContentValues ContentProvider等等
但是每次回头使用总是觉得有点乱,今天总结一下,献给和我一样的小菜鸟。

先来一个引子:

在android DDMS里面data\data\com.android.providers.media的数据库external-cef1c12.db里面存放了两个table,

其中Media放的是真正地图片,Thumbnails放的是图片的缩略图,缩略图是android系统自动生成的

下面两段代码时读取缩略图和图片

/**
* 读取缩略图
*/
private ArrayList<PhotoItem> getPhotosInfo()
{
ArrayList
<PhotoItem> photolist = new ArrayList<PhotoItem>();
Cursor cursor
= getContentResolver().query(
Thumbnails.EXTERNAL_CONTENT_URI,
null, null, null, null);
//Thumbnails.EXTERNAL_CONTENT_URI存放的是缩略图的url
if (cursor.moveToFirst())
{
do
{
PhotoItem pi
= new PhotoItem();
pi.ImageID
= cursor.getInt(cursor
.getColumnIndex(Thumbnails.IMAGE_ID));
pi.photoPath
= cursor.getString(cursor
.getColumnIndex(Thumbnails.DATA));
photolist.add(pi);
}
while (cursor.moveToNext());
}
cursor.close();
return photolist;
}
/**
	 * 读取缩略图
	 */
	private ArrayList<PhotoItem> getPhotosInfo()
	{
		ArrayList<PhotoItem> photolist = new ArrayList<PhotoItem>();
		Cursor cursor = getContentResolver().query(
				Thumbnails.EXTERNAL_CONTENT_URI, null, null, null, null);
		//Thumbnails.EXTERNAL_CONTENT_URI存放的是缩略图的url
		if (cursor.moveToFirst())
		{
			do
			{
				PhotoItem pi = new PhotoItem();
				pi.ImageID = cursor.getInt(cursor
						.getColumnIndex(Thumbnails.IMAGE_ID));
				pi.photoPath = cursor.getString(cursor
						.getColumnIndex(Thumbnails.DATA));
				photolist.add(pi);
			}
			while (cursor.moveToNext());
		}
		cursor.close();
		return photolist;
	}

/** * 读取缩略图 */ private ArrayList<PhotoItem> getPhotosInfo() { ArrayList<PhotoItem> photolist = new ArrayList<PhotoItem>(); Cursor cursor = getContentResolver().query( Thumbnails.EXTERNAL_CONTENT_URI, null, null, null, null); //Thumbnails.EXTERNAL_CONTENT_URI存放的是缩略图的url if (cursor.moveToFirst()) { do { PhotoItem pi = new PhotoItem(); pi.ImageID = cursor.getInt(cursor .getColumnIndex(Thumbnails.IMAGE_ID)); pi.photoPath = cursor.getString(cursor .getColumnIndex(Thumbnails.DATA)); photolist.add(pi); } while (cursor.moveToNext()); } cursor.close(); return photolist; }

/** * 读取图片 */ private String getRealPath(int id) { String path = null; Cursor cursor = getContentResolver().query(Media.EXTERNAL_CONTENT_URI, null, Media._ID + " = " + id, null, null); //Media.EXTERNAL_CONTENT_URI存放的是图片的url if (cursor.moveToFirst()) { path = cursor.getString(cursor.getColumnIndex(Media.DATA)); } cursor.close(); return path; }

未完,待续

转载于:https://www.cnblogs.com/boyupeng/archive/2011/04/20/2028517.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值