Android图片浏览器

news/2024/10/17 12:19:01/

当手机开机、插拔USB连接时,Android系统会启动MediaScanner,扫描SD卡和内存里面的文件,扫描的结果保存在data/data/com.android.providers.media/databases/external.db下。通过DDMS可以找到,数据库中包含了图片、视频、音乐等文件的信息。开发者不用遍历文件,只要使用ContentProvider就可以获取SD卡中不同种类的文件列表。

数据库external.db:
sqlite3 external.db
.tables
所有的表:
album_art              audio_genres           images               
album_info             audio_genres_map       log                  
albums                 audio_genres_map_noid  search               
android_metadata       audio_meta             searchhelpertitle    
artist_info            audio_playlists        semc_metadata        
artists                audio_playlists_map    semc_metadata_version
artists_albums_map     files                  thumbnails           
audio                  files_ext              video                
audio_ext              files_with_ext         videothumbnails

选择images并查询;

.mode column         (.mode column 将设置为列显示模式,.header 将显示列名)

.header ON
select * from images;

结果如下:
_id|_data|_size|_display_name|mime_type|title|date_added|date_modified|description|picasa_id|isprivate|latitude|longitude|datetaken|orientation|mini_thumb_magic|bucket_id|bucket_display_name|width|height
86|/mnt/sdcard/DCIM/100ANDRO/DSC_0001.jpg|607597|DSC_0001.jpg|image/jpeg|DSC_0001|1371782044|1361346484||||||1361346484000|90|7241443144086764191|1278012876|100ANDRO|2048|1536

示例代码:

列表界面:

public class PlayerActivity extends Activity {
private ListView listView;
private CursorAdapter adapter;
private Cursor cursor;
private String path;
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
listView = (ListView)findViewById(R.id.listView);
ContentResolver contentResolver = getContentResolver();
cursor = contentResolver.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
null, null, null, null);
adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, cursor,
new String[] {
MediaStore.Images.ImageColumns.TITLE, MediaStore.Images.ImageColumns.SIZE
}, new int[] {
android.R.id.text1, android.R.id.text2
});
listView.setAdapter(adapter);
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// TODO Auto-generated method stub
try {
if (cursor.moveToPosition(position)) {
path = cursor.getString(cursor.getColumnIndex("_data"));
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
Intent intent = new Intent(PlayerActivity.this, ShowActivity.class);
intent.putExtra("path", path);
startActivity(intent);
}
});
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
cursor.close();
}
}
显示界面:
public class ShowActivity extends Activity {
private ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.show);
imageView = (ImageView)findViewById(R.id.show);
Intent intent = getIntent();
String path = intent.getStringExtra("path");
BitmapDrawable drawable = new BitmapDrawable(getResources(), path);
imageView.setImageDrawable(drawable);
}
}

MediaStore:基于SQLite的多媒体数据库,包含了视频、音频、图片等所有的多媒体文件的信息。
MediaStore.Audio:音频信息
MediaStore.Files:非媒体信息
MediaStore.Images:图片信息
MediaStore.Video:视频信息
MediaStore.MediaColumns:部分MediaProvider表的常用列




http://www.ppmy.cn/news/150215.html

相关文章

网页图片浏览

基本功能&#xff1a;输入图片的url然后点击按钮加载出来图片 activity_main.xml <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android" xmlns:tools"http://s…

ViewPager2 滑动图片浏览

1. 基于 "Gallery 简易图片浏览" 添加 Gallery 简易图片浏览https://blog.csdn.net/u011193452/article/details/127006679 2. ViewPager 适配器 2.1 适配器布局文件 pager_photo_view.xml <?xml version"1.0" encoding"utf-8"?> <…

简单图片浏览器

本示例用于循环显示GIF图片&#xff0c;调用Python的标准库tkinter&#xff0c;如果要做更高端的图像处理应该采用PIL库。 import tkinter as tk,os #导入库 class Application(tk.Frame): #定义GUI的应用程序类&#xff0c;派生于Frmaedef __init__(self,masterNone): #构…

Gallery 简易图片浏览

1. build.gradle, AndroidManifast.xml, 配置文件添加引用 1.1 dependencies 中添加引用库 dependencies {//http 请求implementation com.android.volley:volley:1.2.1//上拉刷新implementation androidx.swiperefreshlayout:swiperefreshlayout:1.1.0//加载网络地址图片impl…

照片浏览

照片浏览器&#xff1a; 1&#xff0c;SDPhotoBrowser 链接&#xff1a; https://github.com/gsdios/SDPhotoBrowser 介绍&#xff1a;中国人提供的源码&#xff0c;是在sdimage上进行开发的&#xff1b;可以查看网络图片&#xff0c;并且有图片缓存功能&#xff0c;加载一次后…

XnViewMP图片浏览器

今天小编给大家带来的是XnViewMP图片浏览器&#xff0c;这是一款非常棒的完全免费图片浏览器&#xff0c;同时支持多种语言&#xff0c;并且是纯绿色免安装&#xff0c;即下即用。软件支持100多种图片格式&#xff0c;还具有浏览器、幻灯片、屏幕捕捉、缩略图制作、批处理转换、…

页面图片浏览

在页面上浏览图片&#xff0c;实现图片的拖放 <html><head><meta http-equiv"Content-Type" content"text/html; charsetgb2312"><title>位图浏览器</title><style type"text/css"><!--#pic { width:…

Js图片浏览器

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns"http://www.w3.org/1999/xhtml"> <head> <title>Js图片浏览器</title&…