안드로이드 내부 저장소에 저장된 사진의 썸네일 목록을 가져오는 코드입니다.
uses
Androidapi.Helpers, Androidapi.JNI.Net, Androidapi.JNIBridge,
Androidapi.JNI.Provider, Androidapi.JNI.GraphicsContentViewText,
FMX.Helpers.Android, Androidapi.JNI.JavaTypes;
procedure TForm1.Button1Click(Sender: TObject);
var
Uri: Jnet_Uri;
Projection: TJavaObjectArray<jstring>;
Cursor: JCursor;
FilePath: string;
Item: TListBoxItem;
begin
Uri := TJImages_Thumbnails.JavaClass.EXTERNAL_CONTENT_URI;
Projection := TJavaObjectArray<jstring>.Create(1);
Projection[0] := TJImages_Thumbnails.JavaClass.DATA;
Cursor := TAndroidHelper.ContentResolver.query(Uri, Projection, nil, nil, nil);
if not Assigned(Cursor) then
Exit;
try
Cursor.moveToFirst;
while(Cursor.moveToNext) do
begin
FilePath := JStringToString(Cursor.getString(Cursor.getColumnIndex(TJImages_Thumbnails.JavaClass.DATA)));
Item := TListBoxItem.Create(ListBox1);
Item.Parent := ListBox1;
Item.Text := FilePath;
Item.ItemData.Bitmap.LoadFromFile(Filepath);
// 쓰레드로 처리해야 함(로딩이 오래 걸림)
end;
finally
Cursor.close;
end;
end;
자세한 설명은 추가하겠습니다.