当前位置: 编程技术>移动开发
本页文章导读:
▪关于获取documents途径 关于获取documents路径
//Returns the path to the application's Documents directory.
// 方法1 iOS4.0版本以上的可以使用该方法获取url
- (NSURL *)applicationDocumentsDirectory_New {
//Availability: iOS 4.0 and later
.........
▪ 获取手机的视频跟图片的缩略图 获取手机的视频和图片的缩略图
大家都知道Android从1.5开始刚插入SD卡时系统会调用MediaScanner服务进行后台扫描,索引新的歌曲、图片和视频等信息,如果我们需要快速提取图片和视频缩略.........
▪ 网络获取图片的步骤的重写-较简洁(如果手机缓存里面有就从缓存获取) 网络获取图片的方法的重写--较简洁(如果手机缓存里面有就从缓存获取)
我前面的博客写了网络获取图片的方法(见:《Android中获取网络图片的方法(如果手机缓存里面有就从缓存获取).........
[1]关于获取documents途径
来源: 互联网 发布时间: 2014-02-18
关于获取documents路径
//Returns the path to the application's Documents directory. // 方法1 iOS4.0版本以上的可以使用该方法获取url - (NSURL *)applicationDocumentsDirectory_New { //Availability: iOS 4.0 and later NSURL *documentsDictoryURL = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]; NSURL *storeURL = [documentsDictoryURL URLByAppendingPathComponent:@"Data.sqlite"]; return storeURL; }//方法2 iOS4.0版本以下的可以使用该方法获取url
- (NSURL *)applicationDocumentsDirectory_Old { NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);//程序文件夹主目录 NSString *documentsDirectory = [paths objectAtIndex:0];//Document目录 NSString *storePath = [documentsDirectory stringByAppendingPathComponent:@"Data.sqlite"]; NSURL *storeURL = [NSURL fileURLWithPath:storePath]; return storeURL; }
//方法3 获取文件中的Image地址及UIImage
NSString*imagePath = [[[NSBundlemainBundle] resourcePath] stringByAppendingPathComponent:@"Image"]; imagePath = [artistImagePath stringByAppendingPathComponent:@"bg"]; imagePath = [artistImagePath stringByAppendingPathComponent:@"bg.png"]; NSLog(@"%@", imagePath); UIImage* pic = [UIImage imageWithContentsOfFile: imagePath]; //输出:/Users/test/Library/Application Support/iPhone Simulator/4.1/Applications/Test.app/Image/bg/bg.png
[2] 获取手机的视频跟图片的缩略图
来源: 互联网 发布时间: 2014-02-18
获取手机的视频和图片的缩略图
大家都知道Android从1.5开始刚插入SD卡时系统会调用MediaScanner服务进行后台扫描,索引新的歌曲、图片和视频等信息,如果我们需要快速提取图片和视频缩略图可以直接访问 android.provider.MediaStore.Images.Thumbnails 和android.provider.MediaStore.Video.Thumbnails这两个数据库,即可查询出来缩略图
如何判断文件呢? 可以通过Cursor遍历数据库,对比INTERNAL_CONTENT_URI字段的值,这是一个Uri我们可以转成String,这里保存着Android手机SD卡上的多媒体文件完整路径,
有关具体的缩略图可以通过getThumbnail(ContentResolver cr, long origId, int kind, BitmapFactory.Options options) 或getThumbnail(ContentResolver cr, long origId, long groupId, int kind, BitmapFactory.Options options) 方法获取,这两种方法返回Bitmap类型,而缩略图的分辨率可以从HEIGHT和WIDTH两个字段提取,在Android上缩略图分为两种,通过读取KIND字段来获得,分别为MICRO_KIND和MINI_KIND 分别为微型和迷你两种缩略模式,前者的分辨率更低。这样我们平时获取文件系统的某个图片预览时,可以直接调用系统缩略图,而不用自己重新计算。
最后Android123提示大家,缩略图保存在SD卡的DCIM目录,里面的.thumbnails是图片的,而.video_thumbnails是视频的,这两个文件夹为隐藏属性,一般的文件管理器都可以看到。
从Android2.2开始系统新增了一个缩略图ThumbnailUtils类,位于framework的android.media.ThumbnailUtils位置,可以帮助我们从mediaprovider中获取系统中的视频或图片文件的缩略图,该类提供了三种静态方法可以直接调用获取。
1. static Bitmap createVideoThumbnail(String filePath, int kind) //获取视频文件的缩略图,第一个参数为视频文件的位置,比如/sdcard/android123.3gp,而第二个参数可以为MINI_KIND或MICRO_KIND最终和分辨率有关
2. static Bitmap extractThumbnail(Bitmap source, int width, int height, int options) //直接对Bitmap进行缩略操作,最后一个参数定义为OPTIONS_RECYCLE_INPUT,来回收资源
3. static Bitmap extractThumbnail(Bitmap source, int width, int height) // 这个和上面的方法一样,无options选项
最后Android开发网再次提醒大家,ThumbnailUtils类是API Level从8或更高才开始支持的。
出自:http://www.android123.com.cn/androidkaifa/665.html
大家都知道Android从1.5开始刚插入SD卡时系统会调用MediaScanner服务进行后台扫描,索引新的歌曲、图片和视频等信息,如果我们需要快速提取图片和视频缩略图可以直接访问 android.provider.MediaStore.Images.Thumbnails 和android.provider.MediaStore.Video.Thumbnails这两个数据库,即可查询出来缩略图
如何判断文件呢? 可以通过Cursor遍历数据库,对比INTERNAL_CONTENT_URI字段的值,这是一个Uri我们可以转成String,这里保存着Android手机SD卡上的多媒体文件完整路径,
有关具体的缩略图可以通过getThumbnail(ContentResolver cr, long origId, int kind, BitmapFactory.Options options) 或getThumbnail(ContentResolver cr, long origId, long groupId, int kind, BitmapFactory.Options options) 方法获取,这两种方法返回Bitmap类型,而缩略图的分辨率可以从HEIGHT和WIDTH两个字段提取,在Android上缩略图分为两种,通过读取KIND字段来获得,分别为MICRO_KIND和MINI_KIND 分别为微型和迷你两种缩略模式,前者的分辨率更低。这样我们平时获取文件系统的某个图片预览时,可以直接调用系统缩略图,而不用自己重新计算。
最后Android123提示大家,缩略图保存在SD卡的DCIM目录,里面的.thumbnails是图片的,而.video_thumbnails是视频的,这两个文件夹为隐藏属性,一般的文件管理器都可以看到。
从Android2.2开始系统新增了一个缩略图ThumbnailUtils类,位于framework的android.media.ThumbnailUtils位置,可以帮助我们从mediaprovider中获取系统中的视频或图片文件的缩略图,该类提供了三种静态方法可以直接调用获取。
1. static Bitmap createVideoThumbnail(String filePath, int kind) //获取视频文件的缩略图,第一个参数为视频文件的位置,比如/sdcard/android123.3gp,而第二个参数可以为MINI_KIND或MICRO_KIND最终和分辨率有关
2. static Bitmap extractThumbnail(Bitmap source, int width, int height, int options) //直接对Bitmap进行缩略操作,最后一个参数定义为OPTIONS_RECYCLE_INPUT,来回收资源
3. static Bitmap extractThumbnail(Bitmap source, int width, int height) // 这个和上面的方法一样,无options选项
最后Android开发网再次提醒大家,ThumbnailUtils类是API Level从8或更高才开始支持的。
出自:http://www.android123.com.cn/androidkaifa/665.html
[3] 网络获取图片的步骤的重写-较简洁(如果手机缓存里面有就从缓存获取)
来源: 互联网 发布时间: 2014-02-18
网络获取图片的方法的重写--较简洁(如果手机缓存里面有就从缓存获取)
我前面的博客写了网络获取图片的方法(见:《Android中获取网络图片的方法(如果手机缓存里面有就从缓存获取)》),但比较原始,代码比较冗长,想简化一下。另外一篇文章:《Android中获取网络图片的三种方法》里面的公用获取Drawable对象的方法,是不会缓存到手机里面的,这里就把那个方法(loadImageFromNetwork() )重写一下,达到图片缓存的目的:
我前面的博客写了网络获取图片的方法(见:《Android中获取网络图片的方法(如果手机缓存里面有就从缓存获取)》),但比较原始,代码比较冗长,想简化一下。另外一篇文章:《Android中获取网络图片的三种方法》里面的公用获取Drawable对象的方法,是不会缓存到手机里面的,这里就把那个方法(loadImageFromNetwork() )重写一下,达到图片缓存的目的:
// 如果缓存里面有就从缓存获取,否则网络获取图片,返回Drawable对象 public static Drawable loadImageFromNetwork(Context context, String imageUrl) { Drawable drawable = null; if(imageUrl == null ) return null; String imagePath = ""; String fileName = ""; // 获取url中图片的文件名与后缀 if(imageUrl!=null&&imageUrl.length()!=0){ fileName = imageUrl.substring(imageUrl.lastIndexOf("/")+1); } // 图片在手机本地的存放路径,注意:fileName为空的情况 imagePath = context.getCacheDir() + "/" + fileName; Log.i("test","imagePath = " + imagePath); File file = new File(context.getCacheDir(),fileName);// 保存文件 Log.i("test","file.toString()=" + file.toString()); if(!file.exists()&&!file.isDirectory()) { try { // 可以在这里通过文件名来判断,是否本地有此图片 FileOutputStream fos=new FileOutputStream( file ); InputStream is = new URL(/blog_article/imageUrl/index.html).openStream(); int data = is.read(); while(data!=-1){ fos.write(data); data=is.read();; } fos.close(); is.close(); // drawable = Drawable.createFromStream( // new URL(/blog_article/imageUrl/index.html).openStream(), file.toString() ); // (InputStream) new URL(/blog_article/imageUrl/index.html).getContent(); drawable = Drawable.createFromPath(file.toString()); Log.i("test", "file.exists()不文件存在,网上下载:" + drawable.toString()); } catch (IOException e) { Log.d("test", e.getMessage()); } }else { drawable = Drawable.createFromPath(file.toString()); Log.i("test", "file.exists()文件存在,本地获取"); } if (drawable == null) { Log.d("test", "null drawable"); } else { Log.d("test", "not null drawable"); } return drawable ; }
最新技术文章: