我制作的相机应用程序可以拍摄并保存SD卡中的图片。想法是存储具有日期/位置属性的图片。日期部分有效,但我不知道如何做位置,所以我一直在谷歌搜索,我发现了Exif属性。阅读完它们之后,我知道它们是如何工作的,但我不知道如何将它们放在代码中以使其工作。
我认为代码的部分应该在下面附上。
提前致谢!
PictureCallback mPicture = new PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {
File pictureFile = getOutputMediaFile();
if (pictureFile == null) {
return;
}
try {
FileOutputStream fos = new FileOutputStream(pictureFile);
fos.write(data);
fos.close();
} catch (FileNotFoundException e) {
} catch (IOException e) {
}
}
};
private static File getOutputMediaFile() {
File mediaStorageDir = new File(
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "FOTOS");
if (!mediaStorageDir.exists()) {
if (!mediaStorageDir.mkdirs()) {
Log.d("FOTOS", "ERROR al crear el directorio");
return null;
}
}
// Create a media file name
String timeStamp = new SimpleDateFormat("HHmmss_ddMMyyyy").format(new Date());
File mediaFile;
mediaFile = new File(mediaStorageDir.getPath() + File.separator + "IMG_" + timeStamp + ".jpg");
return mediaFile;
}
class mylocationlistener implements LocationListener{
@Override
public void onLocationChanged(Location location){
if(location != null)
{
double plong = location.getLongitude();
double plat = location.getLatitude();
double palt = location.getAltitude();
textLat.setText(Double.toString(plat));
textLong.setText(Double.toString(plong));
textAlt.setText(Double.toString(palt));
}
}
@Override
public void onStatusChanged(String s, int i, Bundle bundle) {
}
@Override
public void onProviderEnabled(String s) {
}
@Override
public void onProviderDisabled(String s) {
}
}