[안드로이드] 포토 라이브러리 목록 불러오기

2016.12.09 17:15



안드로이드 내부 저장소에 저장된 사진의 썸네일 목록을 가져오는 코드입니다.


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;

자세한 설명은 추가하겠습니다.


저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

험프리.김현수 험프리.김현수 Firemonkey/참고소스

[게임] 매의 눈(컵속에 숨겨진 주사위 찾기 게임)

2016.04.27 12:58

구글 플러스 델파이 개발자 그룹에 오대우님이 매의 눈이라는 게임의 소스코드를 공개하셨습니다.

매의 눈은 컵안에 숨겨진 주사위를 찾는 게임으로 현재 안드로이드 마켓에 올려놓으셨네요.


추억의 야바위(?) 게임 다운받아서 술자리에서하면 재밌을 것 같습니다.


소스코드는 드롭박스에 올려주셨네요.(미러도 제공하겠습니다.)




저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

험프리.김현수 험프리.김현수 Firemonkey/참고소스

[iOS] 배포파일 아이클라우드 백업 옵션설정하기

2015.05.18 09:15

iOS앱 배포 시 함께 배포하는 파일에 대해 아이클라우드 백업 설정하는 코드입니다.

대상은 "StartUp\Documents"에 배포하는 파일이며, 아이클라우드 백업 설정하지 않으면 앱스토어 배포 시 리젝처리 될수 있다고 하니 아래 코드를 참고해서 아이클라우드 백업 설정처리하시기 바랍니다.

uses iOSapi.Foundation;
 
function SetBackupFlag( AFileName: string; ABackup: boolean): boolean;
var
  URL : NSUrl;
  Err : PPointer;
begin
  URL := TNSURL.Wrap(TNSURL.OCClass.fileURLWithPath(NSStr(AFileName)));
  Result := URL.setResourceValue(TNSNumber.OCClass.numberWithBool(not ABackup),
              NSStr ('NSURLIsExcludedFromBackupKey'), err) and (err = nil);
end;



참고 글



저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

험프리.김현수 험프리.김현수 Firemonkey/참고소스

안드로이드에 설치된 앱 목록(AppList)을 표시하는 앱(소스코드 공개)

2015.01.13 12:05

안드로이드 디바이스에 설치된 앱을 빠르게 찾아 실행할 수 있는 안드로이드 앱의 소스코드를 FMXExpress.com에서 공개하였습니다.


해당 앱은 설치된 앱 목록을 표시하고, 항목 선택 시 앱을 실행합니다. 그리고, 검색창을 통해 키워드로 필터링해 빠르게 앱을 검색할 수 있습니다. 기존에는 안드로이드 디바이스에서 페이지 단위로 넘겨가며(Swipe) 앱을 찾던 수고를 크게 줄일 수 있습니다.


이 앱에서는 다음의 기술을 학습할 수 있습니다.

  • 설치된 앱 목록 조회하기
  • 설치된 앱의 아이콘 가져오기
  • 앱 실행(앱의 패키지명, 앱이름으로)
  • ListView 필터링 하기




저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

험프리.김현수 험프리.김현수 Firemonkey/참고소스 oDesk, 안드로이드

블루투스 LE와 클라우드를 이용한 수화물 무게 기록 앱 샘플

2014.11.05 11:13

여행을 할때 짐을 챙기는 것도 중요하지만 정해진 수화물 무게를 맞추는 것도 중요합니다.^^

어떤 물품이 얼마나 나가는지 기록하면 수화물 무게를 계산할때 아주 유용하겠네요.


이번 글에서는 블루투스 LE를 지원하는 저울(Wahoo Balace scale)과 연동해 수화물 무게를 얻어와 클라우드에 저장하는 모바일 앱을 RAD Studio XE7으로 만드는 샘플을 소개합니다.



이 앱은 총 3개의 탭으로 구성되었습니다.

  • Weight Scale - 수화물 무게를 표시하고 수화물의 내용을 저장
  • Logged Data - 기존의 수화물 데이터를 검색하고 목록을 표시
  • Settings - 블루투스 데이터를 표시

다양한 UI 구성요소와 TBluetoothLE 컴포넌트, BaaS 컴포넌트가 포함되었고 TStyleBook(custom jet style)을 이용해 스타일을 구성했습니다.

  • TKinveyProvider (AppKey, AppSecret, MasterSecret는 Kinvey.com의 계정과 연결) 
  • TBackendQuery (TKinveyProvider 연결) 
  • TBackendStorage (TKinveyProvider 연결) 
  • TRestResponseDataSetAdapter 
  • TFDMemTable



이후의 화면 구성과 소스코드는 아래의 원문을 통해 확인하시기 바랍니다.


클라우드 서비스(BaaS) 사용하는 방법은 아래 관련글의 동영상강좌를 들어보시면 많은 도움이 됩니다.


관련글



저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

험프리.김현수 험프리.김현수 Firemonkey/참고소스 샘플

REST Client 컴포넌트 - 마블(Marvel) 개발자 API 사용

2014.08.20 10:50

최근 개봉된 "갤럭시 오브 가디언즈"를 제작한 마블(Marvel)의 캐릭터와 스토리 등을 가져올 수 있는 API가 있습니다.

그리고 개발자 API를 통해 델파이 XE6의 REST Client 컴포넌트로 앱을 만들어 공개한 내용이 있어 소개합니다.


위 글에서는 REST Request 파라메터를 구성하고 이미지를 쓰레드로 받아오는 내용이 포함되어 있어 참고하면 아주 좋습니다.



저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

험프리.김현수 험프리.김현수 Firemonkey/참고소스

시스템정보 확인, 캔버스 벤치마킹 용 앱 소개(Win, OSX, iOS, Android)(소스공개)

2014.08.13 09:54

델파이 RTL과 파이어몽키의 속성값과 캔버스의 벤치마킹 등을 확인하는 앱이 구글 플레이어에 등록되었습니다.


대표적인 기능은

  • 델파이(RTL)의 시스템, 수학함수 등의 정보
  • 파이어몽키를 이용한 시스템 정보(터치 지원 정보, 폼팩터 등)
  • 캔버스에 도형을 그리는 작업의 벤치마킹(TChart 이용)
  • 윈도우 32, 64 bit, OSX, iOS, Android 지원


아래 원문에서 추가 설명 및 소스코드를 확인하세요. 소스코드를 보시면 많은 정보를 얻을 수 있습니다.


저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

험프리.김현수 험프리.김현수 Firemonkey/참고소스

15개 퍼즐 조각을 이동해 숫자를 맞추는 퍼즐게임(소스 공개)

2014.08.13 09:31

러시아 델파이 개발자인 Andrey Yefimov가 퍼즐게임을 만들어 공개했습니다.

4 x 4 공간에서 숫자를 이동해 연속된 숫자를 맞추는 퍼즐인데요.


 


TRectangle과 TLabel로 숫자 항목을 구성하고 TFloatAnimation으로 퍼즐 이동 시 효과를 주었습니다.

다음 블로그를 참고해 자세한 내용과 소스코드를 다운로드 받으세요.(러시아 어입니다. 우측에 번역 기능을 이용하세요.)




참고




저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

험프리.김현수 험프리.김현수 Firemonkey/참고소스

Bejeweled clone - 보석 맞추기 게임(소스공개)

2014.07.01 10:01

저는 개인적으로 캔디크러쉬 세가, 애니팡 등의 게임을 아주 많이 하는데요^^

Embarcadero CodeRage 8에서 위의 게임과 비슷한 Bejeweled 게임을 만들는 방법을 동영상으로 설명하고

소스코드가 공개되었습니다.


델파이로 만들어졌기 때문에 안드로이드와 iOS에서 모두 실행되구요, 더불어 윈도우, 맥에서도 실행됩니다.

이번기회에 소스코드 활용해 재미있는 게임을 만들어 보세요^^



설명 동영상

http://www.youtube.com/watch?v=PFzlgQbmqag


소스코드

https://github.com/jadeade/jweled


그리고 Code Rage 8 에서 다양한 주제의 기술 동영상이 있으니 방문하셔서 들어보시기 바랍니다.

http://www.embarcadero.com/coderage/embtc-gated-sessions1013



참고



저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

험프리.김현수 험프리.김현수 Firemonkey/참고소스 Bejeweled, Delphi XE6, 소스공개

스노우크래프트(Snow Craft) for 안드로이드(소스포함)

2014.04.25 10:48



델마당(http://www.delmadang.com)을 통해 양병규님이 Snow Craft 라는 게임을 Delphi XE5로 만드시고(Clone) 공개하셔서 소개합니다. 아마 예전에 윈도우 버전으로 작업했던 부분을 안드로이드로 포팅하신 듯 합니다.


제가 가지고 있는 넥서스7 1세대에서도 아주 잘 돌아가고 무엇보다 게임이 재밌네요^^

소스를 열어보시면 배울 만한 것들이 많이 있습니다.

(아주 좋은 소스코드를 공개해 주신 양병규님에게 다시한번 감사드립니다.)


소스코드

아이콘 경로가 절대경로로 잡혀 있어 델마당 자료실의 첨부파일에서 절대경로만 수정하여 올립니다.

▶ 클래스 상속

클래스 상속을 통해 TBoy와 TSnow, TBunker의 공통된 기능을 TCharacter에서 구현되었습니다.

왜 클래스를 사용해야 하는지와 사용하는 방법에 대해 이해하실 수 있을 것 같네요.

▶ 캔버스의 사용

Canvas에 캐릭터 들을 직접 그리는 방식으로 작성하셨습니다.

캔버스 사용법 과 마우스 이벤트를 어떻게 각 케릭터와 연결했는지를 보시면 아이디어를 얻으 실 수 있습니다.

▶ 리소스를 통한 효과음 사용

Sound.pas 파일을 보시면 효과음 파일을 배포관리자를 통해 배포하지 않고 사용할 수 있는 좋은 팁이 있습니다.

Sound.pas 파일의 PlaySound 메소드에는 ResourceID를 통해 등록된 Resource에서 스트림을 가져와 재생하는 코드는 아주 유용한 팁인 것 같습니다.


procedure PlaySound(const ResourceID: String);
var
  ResStream: TResourceStream;
  TempFile, FileName: String;
begin
  if MediaPlayer.State = TMediaState.Playing then Exit;

  FileName := ResourceID + '_tmp.mp3';
  TempFile := TPath.Combine( TPath.GetTempPath, FileName );

  if not FileExists( TempFile ) then
   begin
     ResStream := TResourceStream.Create(HInstance, ResourceID, RT_RCDATA);
     try
       ResStream.SaveToFile( TempFile );
     finally
       ResStream.Free;
     end;
   end;
  MediaPlayer.FileName := TempFile;
  MediaPlayer.Play;
end;


Project > Resources and images.. 메뉴를 통해 위의 화면을 이용 할 수 있습니다.


참고 링크




저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

험프리.김현수 험프리.김현수 Firemonkey/참고소스 android, Firemonkey, Snow craft, 양병규

  1. Blog Icon

    비밀댓글입니다

  2. 네 의견 감사합니다^^ 정지화면을 하나 더 올렸습니다.
    모바일에서 gif애니메이션이 안돌아가는 것을 몰랐네요.

구글맵과 3D 연동(느슨한)

2014.03.26 10:01



구글맵과 3D를 연동해 아주 색다르게 맵을 표현하는 데모 앱입니다.

실제 구동하면 지도가 회전되고 그 중심에 TCone으로 현재의 위치를 표시합니다.


샘플을 통해 아래의 내용을 확인하실 수 있습니다.

  • 위치센서로 위도와 경도를 읽는다.
  • 구글맵에서 주변 지도를 얻는다.
  • 지도에 InvertEffect효과를 주어 위의 화면과 같이 표현한다.
  • 위의 작업은 AnonymousThread로 처리한다.
  • 기타 3D layer 구성과 FloatAnimation을 이용한 회전


참고링크



저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

험프리.김현수 험프리.김현수 Firemonkey/참고소스

Flappy Firemonkey 게임앱 소개(소스 공개)

2014.03.06 11:15


Flappy bird와 비슷한 게임인 Flappy firemonkey라는 게임이 파이어몽키로 만들어 졌습니다.

아주 간단하면서도 중독성 있는 게임이죠^^ 


현재는 TBitmap에 Assigned하는 방식으로 캐릭터를 구현했구요. 향후 TSprite 컴포넌트나 TBitmapListAnimation에 변경할 계획을 갖고 있다고 합니다.

화면을 탭하면 뛰어오르고 서서히 기울어지며 떨어지는 캐릭터를 어떻게 구현했는지 공개된 소스를 통해 확인하면 좋을 것 같습니다.

관련 링크



저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

험프리.김현수 험프리.김현수 Firemonkey/참고소스 Firemonkey, Flappy Fiiremonkey, 소스공개, 파이어몽킹

Tap-Tap 안드로이드 게임(소스공개)

2014.02.25 12:02

Delphi XE5로 개발된 Tap-Tap이라는 게임을 소개합니다. 손을 흔드는 귀여운 안드로이드 캐릭터(드로이드?)가 인상적인데요^^

이 게임은 러시아에서 개최된 2013년도 델파이 안드로이드 경연대회 우승하신 분의 작품입니다.


아래 보시는 것 처럼 대회용 작품이어서 약간은 급조한 태가 나지만, 초기 인트로 영상효과 및 드로이드의 애니메이션 효과가 너무나 멋지네요.


저도 간단하게 소스코드를 확인해 봤는데요. 드로이드의 애니메이션 효과는 대부분 TRectangle에 FloatAnimation 효과를 줘서 처리한것이 참 인상적이네요.

소스코드가 공개되어 있어 다운로드하셔서 테스트 가능합니다.(관련링크 참조)


여러모로 소스를 분석해 보시면 많은 아이디어와 도움이 될 것 같습니다.


구글플레이에서도 설치하셔서 테스트 해볼 수 있습니다.


관련링크



저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

험프리.김현수 험프리.김현수 Firemonkey/참고소스 android, Firemonkey, taptap, 소스공개

Fmx Time - Clock and Timer mobile Application(소스공개)

2014.02.21 10:51

파이어몽키로 시계와 타이머를 아주 비주얼하게 만든 앱이 구글 스토어에 등록되었습니다.

아래와 같이 화면이 유려한데요. 파이어몽키로 아주 쉽게 만들 수 있습니다.


RotationAngle 및 FloatAnimation을 이용해 구성되어 있어 다이나믹하게 UI를 구성하는 힌트를 얻을 수 있을 것 같습니다.


소스코드

http://cc.embarcadero.com/item/29766


구글플레이 스토어 확인

https://play.google.com/store/apps/details?id=com.thierrylaborde.FmxTime

저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

험프리.김현수 험프리.김현수 Firemonkey/참고소스 Firmonkey, Fmx Time

  1. Blog Icon
    레몬트리

    아이폰5 로 컴파일해서 실행해보면 TRectangle 는 계단현상, 인포 눌렀을 땐 화면스크롤이 버벅되는 느낌
    기존 샘플도 그렇고 Canvas 처리가 느린건 언제쯤 해결 될런지
    폰갭보다 UI 가 더 느린거 같은 ㅠㅠ

  2. 샘플형태로 작성해서 디테일이 약간 떨어지네요
    PNG 이미지 위주로 작업했으면 더 완성도가 높았을것 같네요^^

    확인해 보니 아이폰 기본 시계앱의 바늘도 계단현상은 발생하네요.

델파이로 만든 큐브 맞추기 앱(소스공개)

2014.02.14 10:40



Delphi XE5로 만든 큐브맞추기 앱이 구글스토어에 올라갔네요. 사진을 보면 (당연히)아이패드에서도 돌아가는데요. 현재는 구글플레이만 올라간 것 같습니다.

소스코드도 공개되었으니 참고하시면 좋을 것 같습니다.


http://blogs.embarcadero.com/tlaborde/2014/02/07/rubiks-cube-application-online-event-le-dev-du-jeudi-episode-7/



참고링크


저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

험프리.김현수 험프리.김현수 Firemonkey/참고소스

안드로이드 파일매니저(샘플소스 포함)

2014.02.12 14:16


위와 같은 형태의 파일과 디렉토리 목록을 구성하는 샘플 소스입니다.



아래의 링크(러시아 블로그)에서 자세한 내용을 확인할 수 있습니다.

http://delphifmandroid.blogspot.kr/2014/02/android-2.html


참고링크




저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

험프리.김현수 험프리.김현수 Firemonkey/참고소스

파이어몽키로 만든 3D CubeMan

2014.01.29 14:31


파이어몽키 3d 컴포넌트와 FloatAnimation을 이용해 간단하고 도 멋진 샘플을 만들었네요.

몸에 머리, 팔, 다리를 하위로 구성하고 FloatAnimation으로 움직이는 애니메이션을 주었습니다.


돌려보시면 아쥐 귀엽게 뛰는 3DCubeMan을 보실 수 있습니다.


소스코드는 여기


저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

험프리.김현수 험프리.김현수 Firemonkey/참고소스

[소스공개] WordLine(낱말맞추기)

2014.01.28 08:59


 구글플러스 친구(?)인 Roman Yankovsky(https://plus.google.com/u/0/+RomanYankovsky/posts)가 낱말맞추기 소스코드를 공개했네요.

 구글플레이에 올라간 앱의 소스코드와 윈도우용 실행파일을 제공해줬습니다.(Thank you!!)


소스코드


윈도우용 실행파일





저작자 표시 비영리 동일 조건 변경 허락
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

험프리.김현수 험프리.김현수 Firemonkey/참고소스