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