1、向图片中存储一些属性,可以使用ExifInterface,属性有很多,查看源码就能知道;
通过测试,发现不能存储除了该类定义外的其他属性信息。通过setAttribute(String tag,String value);然后需要saveAttributes()。
2、目前想存储Double类型坐标,但是通过getAttribute(String tag)取出来的内容形如:112/1,39/1,288172/3278,其实就是“度分秒”拆分后,分母除以1的结果。所以,存储的时候尝试存储这种格式,最后得到了正确结果。但是秒那一块的分子分母是怎么搞的,一直没弄明白。后来索性把得到的秒直接也除以1得了。
3、需要一个转换工具把Double类型转换为112/1,39/1,288172/3278字符串;
/**
* 将小数度数转换为度分秒格式
* @param numStr (主要用于图片中存储经纬度)
* @return
*/
public static String convertToSexagesimal(String numStr){
double num = Double.parseDouble(numStr);
int du=(int)Math.floor(Math.abs(num)); //获取整数部分
double temp=getdPoint(Math.abs(num))*60;
int fen=(int)Math.floor(temp); //获取整数部分
double miao=getdPoint(temp)*60;
if(num<0)
return "-"+du+"/1,"+fen+"/1,"+miao+"/1";
return du+"/1,"+fen+"/1,"+miao+"/1";
}
//获取小数部分
private static double getdPoint(double num){
double d = num;
int fInt = (int) d;
BigDecimal b1 = new BigDecimal(Double.toString(d));
BigDecimal b2 = new BigDecimal(Integer.toString(fInt));
double dPoint = b1.subtract(b2).floatValue();
return dPoint;
}
4、获取Double类型字符串;不过ExifInterface提供的方法是获取float类型的。
查看源码,发现有个private static float convertRationalLatLonToFloat(String rationalString, String ref),把112/1,39/1,288172/3278转换成float类型数值。
最后通过public boolean getLatLong(float output[]) 这个类获取经纬度数值,
存入float数组中,然后取出使用。需要注意的是TAG_GPS_LATITUDE_REF和TAG_GPS_LONGITUDE_REF必须有值,他们的值为N(north),S(south),W(west),E(east)。
- 大小: 112.8 KB
- 大小: 64.9 KB
- 大小: 59 KB
分享到:
相关推荐
"Android Intent 和 ContentProvider" Android Intent 是 Android 组件之间的信使,负责在 Android 三大核心组件(Activity、Service、Broadcast Receiver)之间传递信息。Intent 是一个将要执行的动作的抽象描述...
### 新版Android开发教程+笔记12--文件存取、数据库编程 #### 文件存取编程基础 在Android应用开发过程中,文件存取是一项基本而重要的功能。它允许开发者存储和检索用户数据,如配置文件、图像文件等。下面将详细...
在Android应用开发中,文件存取和数据库编程是两个至关重要的概念。对于任何需要持久存储数据的应用来说,理解和掌握这两个方面都是必要的。本教程将深入探讨Android系统中的文件存储机制以及SQLite数据库的使用。 ...
在Android应用开发中,文件存取和数据库编程是两个至关重要的环节。本教程将深入探讨这两个主题,帮助开发者更好地理解如何在Android系统中管理和存储数据。 ### 文件存取 #### 1. 存储类型 Android提供了多种...
例如,你可以通过键(Key)来获取或设置对应的值(Value),并且支持多种数据类型,包括基本类型以及自定义对象。框架会自动处理序列化和反序列化的过程,极大地提高了开发效率。 在实现上,`DoKV`可能采用了诸如...
行业分类-设备装置-纸币循环存取装置及自动柜员机.zip
行业资料-交通装置-一次存取多车装置的立体车库.zip
行业资料-交通装置-一种存取、运输方便的档案盒.zip
行业分类-设备装置-现金自动存取装置
《深入浅出Android-Google手持设备应用程序设计》是一本专注于Android开发的图书,由gasolin撰写,致力于帮助读者理解和掌握Android手持设备应用的设计与开发。Android,一个由Google主导的开放手机操作系统,已经...
行业资料-交通装置-一次存取多车装置的立体车库[1].zip
android很好的入门书籍,通俗易懂,值得一看。目录: 􀂾 入门 1. 初探Android 2. 安装Android 开发工具 3. 开启现有专案 4. 操作Android 模拟器(Emulator) 5. 建立一个Android 程式(BMI0) 􀂾 基础 1...
行业资料-电子功用-可安全存取数据的电子系统
标题中的“教育科研-学习工具-PHS手机存取多媒体影音资料的系统”表明这是一个与教育科研相关,并且涉及使用PHS(Personal Handyphone System,个人手持电话系统)手机来存储和访问多媒体影音资料的系统。...
在IT行业中,传输媒体存取控制系统(Media Access Control, MAC)是网络通信中的核心组成部分,尤其是在局域网(LAN)环境中。MAC层是OSI模型的第二层——数据链路层的一部分,它负责控制网络中多个设备如何共享传输...
Android 的 SQLite 中 DateTime 类型数据的存取问题 Android 平台中的 SQLite 数据库在存储 DateTime 类型的数据时会遇到一些问题。本文将详细介绍这些问题和解决方案。 日期类型数据的存储问题 -----------------...
在Android平台上,文件的保存与读取是移动应用开发中不可或缺的部分。无论是用户数据的持久化存储、资源文件的管理还是日志记录,都离不开文件操作。以下将详细讲解Android中如何进行文件的保存和读取。 首先,...
自动存取挂具的电镀机允许快速更换不同类型的挂具,适应多样化的电镀需求。挂具材料通常选择耐腐蚀、导电性能良好的金属,如不锈钢或铜,以确保工件在电镀过程中不受污染。 电镀工艺流程一般包括预处理、电镀和后...
在Android应用开发中,SharedPreferences是Android提供的一种轻量级的数据存储方式,主要用于存储一些简单的配置信息,如用户偏好设置、应用状态等。它基于XML文件,提供了键值对的存储方式,非常适合用来保存一些...
在Android应用开发中,我们经常需要处理Intent和...通过利用Kotlin的属性委托,它消除了重复的存取操作,增强了代码的可读性和类型安全性。对于任何寻求简化Android开发流程的开发者来说,这是一个值得探索的工具。