2016-07-30 77 views
0

我正在使用Delphi XE8的應用程序。我如何加載圖像到德爾福XE8的一個apk

當我跑我的手機上的程序,它給了我一個錯誤:

Loading bitmap failed(image.png)

我的代碼工作如下:

if ListBox1.ItemIndex = 0 then 
begin 
    img.bitmap.LoadFromFile('Image.png'); 
    iMin:= Round(iNumber * 1); 
    iMax:= Round(iNumber *13.24); 
    iAvg:= Round(iNumber * 2.59); 
    label7.Text:= inttostr(iMin); 
    label5.Text:= inttostr(iAvg); 
    label6.Text:= inttostr(iMax); 
    label2.Text:= 'Minimum'; 
    label3.Text:= 'Average'; 
    label4.Text:= 'Maximum'; 
end 
else 
    ... 

請注意,圖像保存在同一文件夾中我的程序。

回答

2

請勿使用相對路徑。始終使用絕對路徑。

您需要使用Deployment Manager部署映像文件到手機上的相應文件夾,然後使用System.IOUtils.TPath類定位在運行該文件夾:

Standard RTL Path Functions across the Supported Target Platforms

在Android上,部署圖像文件到./assets/internal文件夾,然後用TPath.GetDocumentsPath()方法在運行時,在這個博客上的記載:

Deploying and accessing local files on iOS and Android

EDN文檔和博客都沒有提及的是,您還需要將System.StartupCopy單元添加到您的應用的uses子句。

uses 
    ..., System.IOUtils, System.StartupCopy; 

... 

img.bitmap.LoadFromFile(TPath.Combine(TPath.GetDocumentsPath, 'Image.png'));