2017-03-17 50 views
2

我試圖將圖片保存在我的設備的外部存儲上,然後將圖像添加到圖庫中。 我嘗試了下面的代碼,但它不起作用! 沒有錯誤發生,但我看不到保存在圖庫中的圖片。使用firemonkey添加圖片庫

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

使用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; 
+0

它的作品!謝謝。 –