现在的位置: 首页 > 综合 > 正文

android如何简单便捷的获取图片类型信息

2018年06月09日 ⁄ 综合 ⁄ 共 835字 ⁄ 字号 评论关闭

时光匆匆,第二篇博客落笔时间距离第一篇已经一年有余。毕业了,一直在忙华润系列的开发工作,有很多零散的感悟却没有时间整理。今个周末不加班,先分享一个获取图片类型的小技巧吧。

在android开发中,有时候我们需要获知图片的类型(png,gif等等),以便做进一步的处理。搜索了下,要么就是根据文件名后缀,要么就是分析文件中的某几个特定的字节信息,从而确定图片的类型。第一个真的很不可靠,因为后缀名可以随便修改而且有时候根本没有文件名;第二个虽然能实现,但是太麻烦了。今天带来一种简单直接粗暴的方式:BitmapFactory中的inJustDecodeBounds。很多人都知道,但是可能没有留意。

直接上代码:

BitmapFactory.Options
options = new BitmapFactory.Options();

options.inJustDecodeBounds = true;

BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher,options);

String type = options.outMimeType;
if (TextUtils.isEmpty(type))
type = "unknow image type";

Log.d("tag", type);// 格式为:image/png

好了,就是这么简单直接,android系统已经为我们做好了铺垫。需要注意的是,有些图片类型是不能识别出来的(tif,iff等),常见的png,jpg,gif,bmp都没有问题,对于不能识别的图片格式,也不要太纠结了,已经够用了。当图片无法识别的时候,返回值为null,这里需要稍微注意下。此外BitmapFactory还有BitmapFactory.decodeByteArray、BitmapFactory.decodeFile等形式,关键是要用上options
那种形式才可以。

就这么多,点击下载DEMO

抱歉!评论已关闭.