도전과제 11,12 서비스에서 보낸 메시지를 액티비티 안에서 등록한 브로드캐스트 수신자를 이용해 받도록 만들어 보세요 화면에 버튼 하나와 입력상자 그리고 텍스트뷰를 배치합니다. 버튼을 누르면 입력상자의 글자를 가져와 서비스를 실행하면서 보내줍니다. 서비스에는 다시 브로드캐스팅을 이용해 글자를 보내줍니다. MainActivity 화면에서는 브로드캐스트 수신자를 통해 글자를 전달받습니다. 수신자를 통해 전달받은 글자를 화면에 있는 텍스트뷰에 표시합니다. 참고할점 액티비티 안에서 브로드캐스트 수신자를 등록할 수 있습니다. 액티비티 안의 수신자에서 메시지를 수신하면 그 메시지를 액티비티 안의 텍스트뷰에 표시할 수 있습니다. 풀이 레이아웃은 단순하게 EditText로 메세지를 보내면, 밑에 TextView에 각각..
도전과제 10 바로가기 메뉴와 하단 탭 그리고 뷰페이저가 들어간 기본 앱 화면을 만들어 보세요. 앱의 화면에 바로가기 메뉴와 하단 탭 그리고 뷰페이저가 들어가도록 만들어 보세요. 하단 탭에는 세 개의 탭 메뉴가 보이도록 합니다. 하단 탭에서 첫 번째 탭을 눌렀을 때 보이는 첫 번째 프래그먼트 화면 안에 뷰페이저가 표시되도록 합니다. 그리고 뷰페이저 안에는 이미지나 기타 화면이 2~3개 들어가 있도록 만듭니다. 바로가기 메뉴를 넣어줍니다. 참고할 점 바로가기 메뉴, 하단 탭, 뷰페이저 등이 포함된 구조를 가지는 앱이 많으니 이 위젯들을 모두 포함하는 기본 앱 구조를 만들어 보는 것이 좋습니다. 풀이 res/layout 폴더에 activity_main과 함께 세 개의 프래그먼트와, 프래그먼트 메인, 그리고 ..
도전과제 09 고객 정보 입력 화면을 프래그먼트로 만들어 보세요. 이 화면은 고객의 이름, 나이, 생년월일을 입력받기 위한 것입니다. 프래그먼트로 고객 정보 입력 화면을 만들어 액티비티에 넣어줍니다. 프래그먼트의 레이아웃에는 리니어 레이아웃이나 상대 레이아웃을 사용하고 그 안에 이름과 나이를 입력받는 입력상자, 생년월일을 표시하는 버튼 그리고 [저장] 버튼을 배치합니다. 생년월일을 표시하는 버튼에는 오늘 날짜를 자동으로 표시하며, 버튼을 누르면 [날짜 선택] 대화상자를 띄우고 날짜를 입력받아 표시합니다. 이름을 넣을 수 있는 입력상자에는 문자열을, 나이를 입력받기 위한 입력상자에는 숫자를 입력할 수 있도록 설정하여 적당한 키패드를 띄우도록 하고 나이는 세 자리까지만 입력할 수 있게 만듭니다. [저장] 버..
도전과제 06 시크바와 프로그레스바를 표시하고 시크바의 값을 바꾸었을 때 프로그래스바의 값도 바뀌도록 만들어 보세요. 화면에 시크바와 프로그레스바, 그리고 입력상자를 배치합니다. 시크바의 값을 바꾸면 프로그레스바의 값도 바뀌도록 합니다. 시크바의 값을 바꾸었을 때 그 값이 입려상제에 표시되도록 합니다. 프로그래스바는 막대형을 사용합니다. 참고할 점 시크바의 값이 바뀔 때 그 값을 알려주는 콜백 메서드를 사용합니다. 시크바의 값이 바뀔 대 그 값을 프로그래스바와 입력상제에 설정합니다. 풀이 우선 메인 화면을 LinearLayout으로 설정한 후 상단에 시크바, 프로그레스바, 텍스트창을 삽입했다. 메인 액티비티에서 SeekBar Listener내의 onProgressChanged 메소드에서 프로그레스바와 텍..
도전과제 05 두 개의 버튼을 화면에 추가하고 버튼 모양을 각각 다르게 보이도록 만들어 보세요. 화면에 두 개의 버튼을 배치합니다. 첫 번째 버튼의 모양은 가장자리에 경계선만 보이도록 하고 경계선과글자색이 동일하도록 만듭니다. 두 번째 버튼의 모양은 배경색이 있고 모서리는 약간 둥글며 글자가 하얀색이 되도록 만듭니다. 참고할 점 드로어블 객체를 만들어 버튼의 배경으로 설정하면 버튼의 모양을 만들 수 있습니다. 드로어블을 XML로 정의할 때 버튼의 모양이 결정됩니다. 풀이 버튼 모양은 drawable 폴더에 두 개의 xml 파일로 정의하였다. 먼저 첫번째 버튼은 stroke를 사용하여 테두리를 주황색으로 만들었다. 두 번째 버튼은 Radius속성을 조절하여 둥글게 만들었다. 이후 버튼의 background..
도전과제 04 화면 위쪽에 텍스트 입력상자, 아래쪽에 [전송]과 [닫기] 버튼을 수평으로 배치해 보세요. MS로 문자를 전송하는 화면은 위쪽에 텍스트 입력상자, 아래쪽에 [전송]과 [닫기] 버튼을 수평으로 배치하도록 구성합니다. 텍스트 입력상자 바로 아래에 입력되는 글자의 바이트 수를 '10/80 바이트'와 같은 포맷으로 표시하되 우측 정렬로 하도록 하고 색상을 눈에 잘 띄는 다른 색으로 설정합니다. 텍스트 입력상자에 입력되는 글자의 크기와 줄 간격을 조정하여 한 줄에 한글 8글자가 들어가도록 만들어 봅니다. [전송] 버튼을 누르면 입력된 글자를 화면에 토스트로 표시하여 내용을 확인할 수 있게 합니다. 참고할 점 화면에서 '10/80 바이트'로 된 글자 부분을 가장 위쪽으로 배치합니다. 입력상자에 글자가..
도전과제 03 두 개의 이미지뷰를 한 화면에 보여주고 하나의 이미지를 두 개의 이미지뷰에서 번갈아 보여주도록 만들어보세요 화면을 위와 아래 두 영역으로 나누고 그 영역에 각각 이미지뷰를 배치합니다. 각각의 이미지뷰는 스크롤이 생길 수 있도록 합니다. 상단의 이미지뷰에 하나의 이미지를 보이도록 합니다. 두 개의 이미지 뷰 사이에 버튼을 하나 만들고, 그 버튼을 누르면 상단의 이미지가 하단으로 옮겨져 보이고 다시 누르면 상단으로 다시 옮겨지는 기능을 추가합니다. 참고할 점 이미지를 화면에 보여주기 위해서는 이미지뷰를 사용하며 태그는 를 사용합니다. 스크롤을 만들고 싶다면 뷰를로 감싸줍니다. 풀이 우선 res\layout 디렉토리에 있는 activity_main화면부터 보도록 하겠다.ConstraintLayo..
Comment