16. 안드로이드 프로그래밍 개발 환경에서 응용 프로그램에서 사용할 리소스 (비디오, 오디오 등..)에 대한 리소스 정보를 담는 파일은 무엇인가?
① R.java
② string.xml
③ AndroidManifest.xml
④ assets.xml
정답: 1
해설: 안드로이드 프로그래밍 개발 환경에서 응용 프로그램에서 사용할 리소스에 대한 정보를 담는 파일은 R.java이다. R.java 파일은 애플리케이션의 모든 리소스 ID를 자동으로 생성하여 관리하는 자바 파일로, 개발자가 리소스에 접근할 때 사용한다. 반면에 string.xml 파일은 주로 문자열 리소스를 저장하며, AndroidManifest.xml 파일은 애플리케이션의 필수 정보와 사용 권한을 정의한다. assets.xml 파일은 실제로 표준 안드로이드 프로젝트에서 사용되지 않는다. 따라서 정답은 ① R.java이며, 이는 리소스를 코드 내에서 쉽게 참조할 수 있도록 도와준다.
17. ImageView의 속성 중에서 true 값일 경우 위젯의 주어진 여백에 맞추기 위해 이미지의 일부를 잘라내는 속성은 무엇인가?
① adjustViewBounds 속성
② scaleType 속성
③ tint 속성
④ cropToPadding 속성
정답: 4
해설: ImageView의 속성 중에서 주어진 여백에 맞추어 이미지의 일부를 잘라내는 기능을 제공하는 속성은 cropToPadding이다. 이 속성이 true로 설정되면, ImageView의 패딩 영역 안으로 이미지가 확장되지 않고, 필요한 부분이 잘려나가 여백을 유지한다. 다른 선지에서 adjustViewBounds는 이미지의 원본 비율을 유지하면서 뷰의 크기에 맞추는 기능을 하며, scaleType은 이미지의 크기 조정 방식을 결정한다. tint 속성은 이미지에 색상 필터를 적용하는 역할을 한다. 각 속성은 ImageView의 다양한 시각적 조정을 가능하게 해주지만, 여백에 맞추어 이미지를 자르는 기능은 오직 cropToPadding에서만 가능하다.
18. View와 내용물 사이의 여백을 결정하는 속성은 무엇인가?
① layout_gravity 속성
② layout_weight 속성
③ padding 속성
④ layout_margin 속성
정답: 3
해설: 정답 ③인 padding 속성은 View와 그 내용물 사이의 여백을 설정하는 데 사용된다. Padding은 View의 경계 내부에 위치한 여백으로, View의 콘텐츠와 View 경계 사이의 거리를 조절한다. 다른 선택지인 ① layout_gravity는 View의 정렬 방식을 부모 컨테이너에 대해 결정하는 속성이다. ② layout_weight는 LinearLayout에서 View가 차지하는 공간의 비율을 정하는 속성이며, ④ layout_margin은 View의 외부 경계와 인접한 다른 View나 컨테이너 경계 사이의 여백을 설정한다. 이러한 속성들은 View의 위치나 크기에 영향을 미치지만, View 내부의 콘텐츠와 경계 사이의 간격을 직접 조절하는 것은 padding 속성이 담당한다.
19. FrameLayout에 대한 설명으로 틀린 것은 무엇인가?
① 모든 차일드는 프레임의 좌상단에 나타난다.
② 차일드 View가 한 번에 여러 개가 동시에 나타나게 할 수 없다.
③ 먼저 추가된 차일드 View가 위쪽에 올라오고, 나중에 추가된 차일드 View가 아래쪽에 내려간다.
④ 차일드 View가 두 개 이상일 때는 추가된 순서대로 표시된다.
정답: 3
해설: FrameLayout에 대한 설명 중 잘못된 것은 ③번이다. FrameLayout에서는 먼저 추가된 차일드 View가 아래쪽에 위치하고, 그 위에 나중에 추가된 차일드 View가 올라가므로, 먼저 추가된 차일드가 위쪽에 올라온다는 설명은 정반대이다. FrameLayout은 자식 View를 배치하는 규칙이 따로 없고 모든 자식 View가 FrameLayout의 좌측 상단에 나타나는 레이아웃이다. 차일드 View가 두 개 이상일 때는 추가된 순서대로 겹쳐서 표시되는 특징이 있다. 먼저 XML 코드에 정의된 자식 View가 아래에 위치하고 나중에 추가된 자식 View가 위쪽에 겹쳐 출력된다.
20. 위젯과 부모 View와의 위치 관계 또는 위젯끼리의 위치 관계를 지정함으로써 View를 배치하는 레이아웃으로 서로간의 위치 관계를 지정하는 방법은 무엇인가?
① LinearLayout
② FrameLayout
③ AbsoluteLayout
④ RelativeLayout
정답: 4
해설: 위젯과 부모 View 간, 혹은 위젯끼리의 위치 관계를 지정하여 View를 배치하는 레이아웃은 RelativeLayout이다. RelativeLayout은 객체 간의 상대적 위치를 기반으로 각 요소를 배치하므로, 다른 선택지와 비교했을 때 가장 적합한 방법이다. LinearLayout은 객체를 선형으로 배치하는 방식이며, FrameLayout은 레이어를 중첩하여 사용하며 위치 지정에는 제한적이다. AbsoluteLayout은 특정 좌표에 객체를 절대적 위치로 배치하는 방식이지만 현대의 개발 환경에서는 권장되지 않는다. 따라서 RelativeLayout이 정답으로 가장 적절하다.
21. 높이가 다른 차일드 View를 수평으로 나란히 배치할 때, 아래쪽 면을 중심으로 하는 정렬 여부를 지정하는 속성은 무엇인가?
① gravity
② layout_height
③ baselineAligned
④ textSize
정답: 3
해설: baselineAligned 속성은 수평으로 서로 높이가 다른 다수의 TextView를 배치했을 때 TextView 아래쪽을 기준으로 텍스트 뷰들을 정렬해주는 속성이다. 이 속성은 LinearLayout에서 차일드 뷰들의 텍스트 기준선을 맞추는 대신, 모든 뷰의 하단이 같은 라인에 오도록 할 때 사용된다. 선택지 ①인 gravity는 뷰 내에서 컨텐츠의 정렬 방향을 지정하지만, 차일드 뷰들의 기준선을 정렬하는 기능은 없다. ② layout_height는 차일드 뷰의 높이를 설정하는 속성으로, 정렬과는 직접적인 관련이 없다. ④ textSize는 텍스트의 크기를 지정하는 속성으로, 뷰의 정렬 방식과는 관련이 없다. 따라서 높이가 다른 차일드 뷰들을 아래쪽 면을 기준으로 정렬할 때는 baselineAligned 속성을 사용해야 한다.
22. View의 layout_width, layout_height의 속성을 다음과 같이 지정할 경우 출력 화면으로 알맞은 것은?
layout_width: wrap_content
layout_height: wrap_content
정답: 4
해설: wrap_content는 View가 출력하는 내용물의 크기에 맞춰 최소한의 크기로 출력한다. 가로와 세로 모두 wrap_contet로 지정되어 있으므로 4번이 정답이다.
23. View를 부모의 어디에 배치할 것인지를 결정하는 속성은 무엇인가?
① padding
② layout_weight
③ layout_gravity
④ layout_margin
정답: 3
해설: View를 부모의 어디에 배치할 것인지를 결정하는 속성은 layout_gravity이다. layout_gravity는 View가 부모 컨테이너 내에서 어떤 위치에 배치될지를 지정한다. 예를 들어, center, top, bottom, left, right와 같은 값으로 설정할 수 있다. 다른 선택지들은 다른 목적으로 사용된다. padding은 View의 내부 여백을 조정하며, layout_weight는 LinearLayout에서 컨테이너 공간의 비율에 따라 View의 크기를 조정하는 데 사용된다. layout_margin은 View 외부의 여백을 설정하여 위치에 간접적인 영향을 미칠 수 있지만, 직접적인 위치를 결정하는 속성은 아니다. 따라서 정확한 속성은 layout_gravity이다.
24. 다음과 같이 gravity 속성을 "center"로 지정했을 경우 그 컴포넌트는 어떻게 위치는 것을 무엇인가?
...생략...
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Gravity Test!"
android:textSize="10pt"
android:gravity="center" />
...생략...
정답: 1
해설: gravity 속성의 center는 "center_horizontal | center_vertical"과 같으며, 실제로 그렇게 정의되어 있음을 알 수 있다.
25. XML을 기반으로 하는 레이아웃의 특징이 아닌 것은 무엇인가?
① JAVA 프로그램과 데이터 영역 (문자열, 그림)이 분리되어 개발될 수 있기 때문에 개발자와 화면 디자이너의 작업 분담이 쉬워진다.
② 상황과 조건에 따라 레이아웃을 변경하거나 텍스트를 쉽게 변경할 수 있으므로 호환성과 국제화에 유리하다.
③ 레이아웃만 수정할 때는 JAVA 프로그램과 함께 컴파일 해야 한다.
④ 구조와 속성을 함축적으로 기술할 수 있으며 레이아웃 재활용도 가능하다.
정답: 3
해설: XML 기반 레이아웃에서는 JAVA 프로그램과 데이터가 분리되어 있어 개발자와 디자이너 간의 작업 분담이 용이하다는 점(①), 다양한 상황과 조건에서 레이아웃과 텍스트를 쉽게 변경할 수 있어 호환성과 국제화에 유리하다는 점(②), 그리고 구조와 속성을 함축적으로 기술하여 레이아웃의 재활용이 가능하다는 점(④)은 모두 XML 레이아웃의 특징이다. 그러나 ③번의 설명은 잘못되었다. XML 레이아웃을 수정할 때는 해당 XML 파일만 수정하면 되고, JAVA 프로그램과 함께 다시 컴파일할 필요가 없다. 이는 XML 레이아웃의 가장 큰 장점 중 하나로, 레이아웃과 로직의 분리를 통해 보다 효율적인 개발이 가능하게 한다.
26. 다음 액티비티와 View에 대한 설명 중 옳은 것은 무엇인가?
① 여러 개의 액티비티가 모여서 하나의 View를 구성한다.
② ViewGroup은 다른 뷰들을 정렬하거나 위치시키는 역할을 하므로 ViewGroup 클래스들을 일반적으로 레이아웃라고 한다.
③ 액티비티 안의 View는 사용자에게 보이는 실체가 아니다.
④ Activity의 종류로는 FrameLayout, AbsoluteLayout 등이 있다.
정답: 2
해설: ViewGroup은 다른 뷰들을 정렬하거나 위치시키는 역할을 하므로 ViewGroup 클래스들을 일반적으로 레이아웃이라고 한다. 이는 ViewGroup이 여러 개의 자식 뷰를 포함하고 이들의 배치와 크기를 관리하기 때문이다. 여러 개의 액티비티가 모여 하나의 View를 구성하지 않으며, View는 사용자에게 보이는 실체이다. FrameLayout과 AbsoluteLayout은 레이아웃의 종류이지 액티비티의 종류가 아니다.
27. ImageView로 화면에 사진을 넣는 방법을 설명한 것 중 틀린 것은 무엇인가?
① 이미지 사용할 파일을 res 폴더에 복사해서 넣는다.
② activity_main.xml 소스 코드에서 src 속성으로 화면에 출력할 이미지를 지정한다.
③ res 폴더에 넣을 수 있는 이미지 포맷은 jpg, png, gif 등이 있다.
④ 이미지 리소스의 ID는 파일 이름에 따라 정의되지만 프로그래머가 임의로 변경할 수 있다.
정답: 1,2,3,4
28. View의 속성에 대한 설명 중 옳은 것은 무엇인가?
① id 속성: View의 이름을 정하는 속성이다.
② background 속성: 문자열의 색상을 지정하는 속성이다.
③ visibility 속성: 화면 내의 특정 위젯의 투명도를 지정하는 속성이다.
④ focusable 속성 : 버튼이 클릭 가능하도록 지정하는 속성이다.
정답: 1
해설: 정답은 ①이다. id 속성은 View에 고유 식별자를 할당하는 데 사용되며, 이를 통해 프로그래밍적으로 또는 레이아웃 내에서 참조할 수 있다. ②번 background 속성은 View의 배경을 설정하는 데 사용되며, 주로 색상이나 이미지를 지정할 수 있지만 문자열의 색상 지정은 해당하지 않는다. ③번 visibility 속성은 View가 화면에 보이는 상태를 제어한다. visible, invisible, gone 중 선택할 수 있으나 투명도를 직접 지정하는 것은 아니다. ④번 focusable 속성은 View가 포커스를 받을 수 있는지 여부를 설정하며, 클릭 가능 여부와는 직접적인 관련이 없다.
29. Button과 EditText에 대한 설명 중 틀린 것은 무엇인가?
① Button은 사용자가 선택해 명령을 내릴 수 있는 위젯이다.
② Button은 사각 모양을 하고 있으며, 이미지를 넣을 수 없다.
③ EditText는 문자열을 입력받는 위젯이다.
④ Button과 EditText 모두 id를 지정해야 한다.
정답: 2
해설: Button은 기본적으로 사각 모양을 하고 있지만 이미지를 넣을 수 있는 기능을 지원한다. `android:background` 속성을 사용하여 버튼에 이미지를 설정할 수 있다. Button은 사용자가 선택하여 명령을 내릴 수 있는 위젯이며, EditText는 문자열을 입력받는 위젯이다. Button과 EditText 모두 고유한 식별자인 id를 지정해야 한다.
30. 다음 보기의 프로젝트 구조에 대한 설명 중 옳은 것을 고르세요.
ㄱ 안드로이드 프로젝트에서 생성되어 사용되는 주요 파일들은 서로 유기적으로 연결되어 있지 않고 독립적이다.
ㄴ 메인 액티비티(MainActivity.java)는 안드로이드 애플리케이션의 시작점이 되는 파일이다.
ㄷ 메인 액티비티가 애플리케이션의 데이터 영역이라면 String.xml과 Activity.xml은 실행 영역에 해당된다.
① ㄴ
② ㄱ,ㄴ
③ ㄴ,ㄷ
④ ㄱ,ㄴ,ㄷ
정답: 1
해설: 정답은 ①로, 올바른 설명은 'ㄴ 메인 액티비티(MainActivity.java)는 안드로이드 애플리케이션의 시작점이 되는 파일이다' 이다. 메인 액티비티 파일은 애플리케이션을 실행할 때 가장 먼저 호출되며 사용자 인터페이스와 주요 로직을 처리한다. 다른 설명들은 부정확하다. ㄱ에서는 안드로이드 프로젝트의 파일들이 유기적으로 연결되지 않았다고 주장하지만, 실제로는 XML 레이아웃 파일, 자바 소스 파일, 매니페스트 파일 등이 서로 상호작용하며 애플리케이션을 구성한다. ㄷ에서는 메인 액티비티와 XML 파일의 영역을 잘못 구분하고 있다. 메인 액티비티는 애플리케이션의 로직을 담당하는 코드 영역에 해당하며, String.xml은 리소스 파일로 사용되는 문자열을 관리하고, Activity.xml은 UI 구성을 담당한다. 따라서 이들은 데이터 영역과 실행 영역으로 구분될 수 없다.
'방통대' 카테고리의 다른 글
방통대 모바일프로그래밍 2017-1 출석수업대체시험 기출문제 풀이 및 다운로드 (0) | 2024.05.08 |
---|---|
방통대 모바일앱프로그래밍 2018-1 기말고사 기출문제 및 해설 다운로드 (1) | 2024.05.08 |
방통대 모바일프로그래밍 2019-1 출석수업 기출문제 풀이 및 다운로드 (0) | 2024.05.07 |
방통대 모바일앱프로그래밍 기말고사 대비 연습문제 풀이 (0) | 2024.05.07 |
방통대 모바일앱프로그래밍 2019-1 기말고사 기출문제 문제와 해설 (PDF 문제지 다운로드) (0) | 2024.05.06 |