使用firemonkey将照片添加到图库

时间:2017-03-17 21:31:20

标签: android delphi

我正在尝试将图片保存在设备的外部存储设备上,然后将图片添加到图库。 我尝试了以下代码,但它不起作用! 没有出现错误,但我看不到图片中保存的图片。

function GetImageUri(ABitmap: TBitmap): Jnet_Uri;
var
  ImageFile: JFile;
  ImageUri: Jnet_Uri;
  FileNameTemp: JString;
  FileNameExt: JString;
begin
  FileNameTemp := StringToJString('temp');
  FileNameExt := StringToJString('.jpg');
  try
    ImageFile := TJFile.JavaClass.createTempFile(FileNameTemp, FileNameExt);
    ImageUri := TJnet_Uri.JavaClass.fromFile(ImageFile);
    showmessage(JStringToString(ImageFile.getAbsolutePath));
    ABitmap.SaveToFile(JStringToString(ImageFile.getAbsolutePath));
  finally
    Result := ImageUri;
  end;
end;

procedure AddPhotoToGallery(const APhoto: TBitmap);
var
  Intent: JIntent;
begin
  Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_MEDIA_SCANNER_SCAN_FILE);
  Intent.setData(GetImageUri(APhoto));
  SharedActivity.sendBroadcast(Intent);

end;

1 个答案:

答案 0 :(得分:1)

使用IFMXPhotoLibrary平台服务。此界面有AddImageToSavedPhotosAlbum方法,您可以使用TBitmap对象调用该方法添加到设备库

检查此代码段:

uses
  FMX.Platform,
  FMX.MediaLibrary;

procedure TForm2.Button1Click(Sender: TObject);
var
  Gallery: IFMXPhotoLibrary;
begin
  if not TPlatformServices.Current.SupportsPlatformService(IFMXPhotoLibrary, Gallery) then
    Exit;

  Gallery.AddImageToSavedPhotosAlbum(YoutBitmapObjectHere);
end;