도전과제 27 지도 위에 친구들의 위치를 표시해 보세요. 위치 좌표는 가상으로 정하고 친구들이 있는 위치에 친구의 사진이나 아이콘을 보여주도록 합시다. 친구들의 위치를 경위도 좌표로 두 군데 설정합니다. 친구들의 위치는 가상 위치로 지정하여 소스 코드에 넣어둡니다. 지도의 특정 영역을 보여준 후 그 위에 친구들의 위치를 실제 친구의 사진으로 표시합니다. 사진을 누르면 친구 정보를 토스트 메시지로 간단하게 보여줍니다. 참고할점 지도 위에 아이콘이나 사진을 표시하려면 마커를 만들어 지도에 추가해야 합니다. 풀이 앱 화면 안에 지도를 넣는 방법으로 MapFragment를 사용한다. 맵 프래그먼트는 구글맵 서비스 기능을 사용할 수 있도록 추가된 기능으로, Google Play Service 모듈을 사용해야 한다..
도전과제 26 증강 현실에서 쿠폰을 보여주는 화면을 가상으로 만들어보세요. 카메라 미리보기 화면을 보여주고 그 위에 쿠폰 이미지를 보여주면 증강 현실에서 보여주는 것처럼 만들 수 있습니다. 앱을 실행하면 카메라 미리보기 화면이 보이도록 하고 아래쪽에는 [쿠폰 보이기]와 [쿠폰 감추기] 버튼을 배치합니다. [쿠폰 보이기] 버튼을 누르면 카메라 미리보기 화면 위에 쿠폰 아이콘을 보여줍니다. [쿠폰 감추기] 버튼을 누르면 쿠폰 아이콘이 보이지 않도록 합니다. 쿠폰 아이콘을 선택하면 토스트 메시지로 선택된 쿠폰 정보를 간단하게 보여줍니다. 카메라 미리보기와 쿠폰 아이콘을 같이 보여주도록 프레임 레이아웃 안에 케메라 미리보기와 쿠폰 아이콘 두 개의 레이아웃을 준비합니다. 그런 다음 소스 코드에서 쿠폰 레이아웃의 ..
도전과제 25 단말의 앨범에 있는 사진들을 가져와 리스트로 보여주는 기능을 만들어 보세요. 앨범에 있는 사진들은 내용 제공자를 이용해 가져올 수 있습니다. 앨범에 저장된 사진을 가져와 사진 리스트를 표시합니다. 앨범에 들어 있는 사진은 내용 제공자(Content Provider)를 사용해 가져옵니다. 리싸이클러뷰의 한 아이템에는 사진 썸네일(Thumbnail) 이미지와 날짜를 표시합니다. 리싸이클러뷰의 위쪽에는 전체 사진의 개수를 표시합니다. 참고할점 단말의 사진 앱으로 사진을 찍으면 앨범에서 볼 수 있습니다. 앨범 앱을 사용하지 않고 여러분이 만든 앱에서도 앨범에 저장된 사진을 보여줄 수 있습니다. 풀이 이전 도전과제 18번 앨범의 사진을 번갈아 보여주기에서 리싸이클러뷰로 보여주기만 하면 되어서 간단하..
도전 24 패널에 빨간색 사각형을 만든 후 손가락으로 터치하여 드래그하면 사각형이 손가락과 함께 움직이도록 만들어 보세요. 화면에는 패널 하나가 보이도록 한 다음 이 패널 안에 빨간색 사각형을 하나 그려 넣습니다. 화면이 처음 띄워졌을 때 빨간색 사각형이 보이는 위치는 화면의 가운데 또는 좌측 상단으로 지정합니다. 손가락을 터치하여 움직이면 빨간색 사각형이 손가락의 움직임에 따라서 이동하도록 만듭니다. 참고할 점 손가락으로 터치하여 선을 그렸던 것과 같은 원리로 소스 코드를 구성하면 됩니다. 풀이 메인 레이아웃은 그냥 빈 레이아웃에 터치하여 움직이라는 글자만 배치하였다. 이제 이 레이아웃에 뷰를 그리는데, 이 뷰 안에서 빨간 버튼을 움직이도록 할 것이다. RedButton이라는 View를 상속하는 객체를..
도전과제 23 페인트보드 앱에 CAP를 설정할 수 있는 기능을 만들어 보세요. 손가락으로 터치하여 선을 그릴 때 선이 가질 수 있는 속성 중의 하나입니다. 페인트보드 앱은 위쪽에 버튼이 있고 아래쪽에 손가락으로 선을 그릴 수 있는 패널이 있습니다. 위쪽에 있는 버튼들의 아래쪽에 레이아웃을 추가하고 그 안에 CAP 스타일을 선택할 수 있는 라디오 버튼들을 배치합니다. CAP 스타일을 표시하는 라디오 버튼을 선택하면 선을 그리는 Paint 객체에 선택한 CAP 스타일이 설정되게 합니다. CAP 스타일을 변경한 후 손가락을 터치해서 선을 그리면 설정한 선의 속성으로 그려지도록 합니다. 참고할점 선의 속성은 여러 가지가 있는데 선의 속성을 모두 넣고 싶다면 별도의 설정 화면을 만들 수도 있습니다. 풀이 메인 레..
도전과제 21,22 탭으로 구성된 화면을 만들고 첫 번째 탭 화면에서는 책 정보를 저장, 두 번째 탭 화면에서는 책 정보를 조회할 수 있도록 합니다. 탭 모양의 화면을 구성하고 두 개의 탭 버튼을 추가합니다. 첫 번째 탭에서는 책 정보를 저장할 수 있도록 합니다. 이 화면은 도전! 17의 미션과 같습니다(제목,저자,내용 입력 후 [저장] 버튼 누르면 데이터베이스에 저장됨.) 두 번째 탭에서는 책 정보를 조회하여 리스트로 보여줄 수 있도록 합니다. 리싸이클러뷰의 각 아이템에는 책 제목과 저자가 표시됩니다. 책 정보를 저장하거나 조회할 때 모두 데이터베이스를 사용합니다. 즉, 책 정보를 저장할 때는 데이터베이스에 저장하고 조회할 때는 데이터베이스에 저장된 데이터를 가져와서 보여줍니다. 참고할점 데이터베이스와..
도전과제 20 RSS 사이트를 조회하여 최신 기사를 받은 후 격자 모양으로 보여주는 기능을 만들어 보세요. rss 사이트는 연예, 경제 등 어떤 내용이든 상관없습니다. RSS 기사를 조회할 수 있는 화면을 구성합니다. 화면의 아래쪽에 [조회] 버튼을 배치하고 나머지 공간은 리싸이클러뷰가 차지하도록 합니다. [조회] 버튼을 누르면 지정한 RSS 사이트를 조회하여 최신 기사를 가져온 후 리사이클러뷰에 표시합니다. RSS 사이트 주소는 미리 소스 코드에 설정합니다. 리싸이클러뷰의 각 아이템에 보일 데이터로는 아이콘과 제목, 내용이 표시되도록 합니다. 참고할점 RSS 사이트를 조회해서 가져온 데이터는 태그로 구성되므로 RSS 조회 결과 문서를 파싱한 후 각 기사를 리싸이클러뷰의 아이템으로 추가해야 합니다. 풀이..
도전과제 19 웹으로가져온 데이터 원본과 함께 웹뷰에서 해당 페이지도 같이 볼 수 있도록 합니다. HTML 문서를 웹뷰에서 보면 웹브라우저에서 보는 것처럼 표시 됩니다. 웹사이트 주소를 입력할 수 있는 입력상자와 버튼을 화면 상단에 배치합니다. [요청] 버튼을 누르면 웹으로 데이터를 가져옵니다. 화면의 가운데 부분에는 가져온 데이터를 보여주도록 합니다. 화면의 아래쪽에는 웹뷰를 추가하고 웹으로 가져온 데이터를 웹뷰에 넣어 보여줍니다. 참고할 점 웹사이트에서 가져와야 할 페이지나 이미지는 여러 개일 수 있습니다. 따라서 웹뷰에 표시되는 웹 문서는 완벽하지 않을 수 있습니다. 풀이 메인 화면은 아래와 같이 위에는 웹의 html 파일을 보여줄 스크롤 뷰, 아래는 위의 html파일을 바탕으로 다시 구축할 웹뷰로..
도전과제 18 단말의 앨범에 있는 사진을 가져와서 하나씩 보여주는 기능을 만들어 보세요. 각각의 사진이 보일 때는 우측에서 좌측으로 애니메이션이 적용되도록 합니다. 단말의 앨범에 들어 있는 사진 정보를 가져와서 화면에 보여줍니다. 화면에는 두 개의 사진이 한 번에 보이도록 하고 두 개의 사진이 들어 있는 패널은 애니메이션을 적용해서 다음 패널로 넘어가도록 합니다. 화면의 위쪽에는 '현재 사진의 순서/사진의 전체 개수' 정보를 표시합니다. 하나의 사진 정보에는 왼쪽에 이미지, 오른쪽에 날짜가 표시되도록 합니다. 5초마다 사진 정보가 바뀌도록 애니메이션을 설정합니다. 참고할 점 단말의 앨범에 들어 있는 사진은 내용 제공자(Content Provider)를 사용해 가져올 수 있습니다. 사진 썸네일(Thumbn..
도전17 : 패널을 번갈아가며 보여주기 고객 정보를 보여주는 두 개의 패널을 만들고 각 패널을 번갈아가면서 보여주도록 애니메이션을 적용해 보세요. 애니메이션은 우측에서 좌측으로 이동하도록 적용할 수 있습니다. 고객 정보를 보여주는 패널 화면을 구성합니다. 패널은 두 개를 만들고 한 번에 하나의 패널이 보이도록 합니다. 패널 위쪽에는 고객 이름, 그 아래에는 연락처와 주소가 간단하게 보이도록 합니다. 패널을 하나씩 보여주되 5초 간격으로 다음 패널이 보이도록 애니메이션을 적용합니다. 애니메이션은 오른쪽에서 왼쪽으로 이동하는 애니메이션을 적용합니다. 참고할점 오른쪽에서 왼쪽으로 움직이는 애니메이션 동작을 우선 res/anim 폴더 안에 xml 파일로 정의한 후 패널에 적용시킵니다. 풀이 우선 anim 폴더에..
Comment