我正在尝试将图片保存在设备的外部存储中,然后将图像添加到图库中。 我尝试了以下代码,但它不起作用! 没有发生错误,但看不到图库中保存的图片。
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;
最佳答案
使用IFMXPhotoLibrary
平台服务。该接口(interface)有一个AddImageToSavedPhotosAlbum
您可以使用 TBitmap
调用方法要添加到设备库的对象
检查此 fragment :
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;
关于android - 使用 firemonkey 将照片添加到图库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42867411/