У меня есть код, но он работает только под Windows, когда компилирую его под андроид, то картинки не загружаются.
В чём может быть причина?
const
count_items = 10;
var
Form1: TForm1;
arr_urls:array[0..9]of String = (
'http://pp.vk.me/c7004/c540105/v540105856/1ac7e/aA-hl0wGb9I.jpg'
'http://cs390.vk.me/u16075638/a_5671aff5.jpg'
'http://pp.vk.me/c624326/v624326216/16d8/ueJoy8De-oQ.jpg'
'http://www.picbutler.de/bild/126494/einruesselfischkn44p.jpg'
'http://pp.vk.me/c606724/v606724409/b8b8/bHKE730yRIU.jpg'
'http://pp.vk.me/c424629/v424629207/8e14/uUte11lG5N8.jpg'
'http://pp.vk.me/c7004/c540100/v540100602/ff0b/fhSBSeacn3s.jpg'
'http://pp.vk.me/c620027/v620027321/1ab3d/h-DQxnB2tQQ.jpg'
'http://pp.vk.me/c624622/v624622975/5c4b/EQ9cyj8INCg.jpg'
'http://pp.vk.me/c606724/v606724409/b8bf/LpkFlJZxwzs.jpg'
);
implementation
{$R *.fmx}
//*************************************************
procedure TForm1.FormCreate(Sender: TObject);
var
I:Integer;
LItem: TListViewItem;
begin
for I := 1 to count_items do
begin
LItem := ListView1.Items.Add;
LItem.Text := Format('Text bla-bla-bla %d', [I]);
LItem.Detail := Format('Detail bla-bla-bla %d', [I]);
end;
TThread.CreateAnonymousThread(procedure()
var
i:integer;
img:TBitmap;
begin
for I := 1 to count_items do
begin
img:=TBitmap.Create;
img:=(GetImgFromUrl(arr_urls[i-1]));
TThread.Synchronize(TThread.CurrentThread, procedure()
begin
ListView1.Items[i-1].BitmapRef:=TBitmap.Create;
ListView1.Items[i-1].BitmapRef.Assign(img);
img.Free;
end );
end;
end).Start;
end;
//*************************************************
function TForm1.GetImgFromUrl(url:string):TBitmap;
var
memStream: TMemoryStream;
img:TBitmap;
begin
memStream:=TMemoryStream.Create;
img:= TBitmap.Create;
result:=img;
try
IdHTTP1.Get(url,memStream);
memStream.Position:=0;
img.LoadFromStream(memStream);
finally
memStream.Free;
end;
result:=img;
end;