IT168技术】从Android 2.0开始新增了ExifInterface类,ExifInterface类主要描述多媒体文件比如JPG格式图片的一些附加信息,比如拍照的设备厂商,当时的日期时间,曝光时间,快门速度等。该类位于android.media.ExifInterface的位置,需要调用API Level至少为5即2.0 SDK。

  一、ExifInterface类给我们了一个实用的方法public byte[] getThumbnail () 这个方法可以生成一个缩略图,返回一个字节数组,我们通过以前讲到的通过OutputStream将其保存成一个JPG文件。当然如果要是显示到一个Drawable对象,可以通过decodeByteArray(byte[], int, int) 类来解析这个字节数组,不过具体生成的分辨率还不清楚。

  二、图片的MIME Exif信息

  图片的的Exif信息和MP3的ID3标签类似,使用了属性和值的存储方式。通过public void setAttribute (String tag, String value) 来设置,而获取可以通过 public int getAttributeInt (String tag, int defaultValue) 和 public String getAttribute (String tag) 两种方法都可以,getAttributeInt 重载方法一第二个参数为我们设置的默认值,如果成功则返回相应Tag的值;特定的整数内容为该方法直接返回值。而重载方法二该方法直接返回结果,如果失败则为null。

  目前Android SDK定义的Tag有:

  TAG_DATETIME 时间日期

  TAG_FLASH 闪光灯

  TAG_GPS_LATITUDE 纬度

  TAG_GPS_LATITUDE_REF 纬度参考

  TAG_GPS_LONGITUDE 经度

  TAG_GPS_LONGITUDE_REF 经度参考

  TAG_IMAGE_LENGTH 图片长

  TAG_IMAGE_WIDTH 图片宽

  TAG_MAKE 设备制造商

  TAG_MODEL 设备型号

  TAG_ORIENTATION 方向

  TAG_WHITE_BALANCE 白平衡

  从Android 2.0.1 SDK上看属性不是很多,详细的可能会在以后的版本中添加,调用示例如下

  String sFileName="cwj-android123.jpg";

  ExifInterface exif = new ExifInterface(filename);

  String sModel=exif.getAttribute(ExifInterface.TAG_MODEL);

  最终sModel就是拍照设备的型号,这里我们可以看到是Nexus One或HTC Hero等等的字符,当然是用数码相机拍照从PC上传的是该文件原始生成的设备,比如IXUS 980等等。

http://doc.chinaunix.net/android/200910/488798.shtml

更多相关文章

  1. android直接在桌面生成快捷方式
  2. android 使用AsyncTask实现异步下载文件
  3. android通过更改hosts免优酷广告方法
  4. 如何优雅的避免android(安卓)运行时崩溃
  5. android 热修复之类加载机制
  6. Android(安卓)6.0 BluetoothAdapter.startDiscovery()扫描不到蓝
  7. android 跨应用启动/绑定Service && aidl
  8. 基于安卓手持设备的手机应用编程——用户界面
  9. Android进阶(一)View体系

随机推荐

  1. Android(安卓)7.0 Service保活总结
  2. Ice Cream Sandwich 已非正式移植於 Nexu
  3. 如何在最新 Android(安卓)Google Maps Ap
  4. (安卓/android)应用层绕过HAL调用驱动
  5. 开始学习Android的日子。。
  6. Android(安卓)jni/ndk编程一:jni初级认识
  7. Android判断是否合法包名、是否系统应用
  8. 以android状态栏虚拟按键消息为例学习在i
  9. React native 与Android原生交互方式(一)
  10. height: 100vh 在 Android(安卓)的 Webvi