Android Activity & Layout & View
목차 Activity Process lifecycle View View Group - Layout
Android - Activity 어플리케이션 내의 하나 의 스크린 UI컴포넌트를 화면에 표 시하고 시스템이나 사용 자의 반응을 처리 어플리케이션이 UI를 가 진다면 하나 혹은 그 이 상의 Activity를 가지며 기존의 Activity는 같은 기능을 하는 새로운 것으 로 대체 될 수 있다.
Activity – Lifecycle Lifecycle 은 PC 보다 상 대적으로 사양이 낮은 모 바일 기기에서 효율적인 메모리 관리를 위해 존재 기본적으로 Activity는 Activity Stack에서 관리 가 된다. 즉 오래된 Activity 들은 점 점 아래에 배치되게 된다.
Activity – Lifecycle OnCreate() : Activity가 생성될 때 처음으로 호출되는 함수를 말합니다. 리소스의 초기화 OnStart() : Activity가 사용자에게 보여줄 준비가 되었을 때 호출됩니다. OnResume() : Activity가 사용자에게 보여지고 사용자의 입력을 처리할 수 있습니다. Activity스택의 가장 상위에 위치합니다.
Activity – Lifecycle OnPause() : 포커스를 잃고 Activity가 Resume되기 전에 데이터에 저장 , 에니메이션 중지, cpu를 소비하는 작업을 중단합니다. OnStop() : 더이상 Activity가 사용자에게 보여지지 않습니다. 더 이상 Activity가 스택의 가장 위에 있지 않습니다. OnDestroy() : 시스템 내에 Activity가 존재하지 않게 됩니다.
Android – Activity 예제 Main - Activity
Android – Activity 예제 SubActivity
Android – Activity 예제 매니페스트 등록! 보안상의 이유로 응용 프로그램에 포함된 모든 액티비티 는 반드시 매니페스트에 등록되어야 한다.
Android – Activity 예제 결과 화면
View View 는 안드로이드의 사 용자 인터페이스(UI)를 구 성하는 핵심 컴포넌트로서 화면상의 사각영역을 차지 하며 자신의 모양을 그리 고 사용자로부터 입력을 받아들인다.
AutoCompleteTextView Object View AnalogClock TextView EditText Button Chronometer DigitalClock ImageButton GlSurfaceView VideoView AbsSeekBar ImageView SurfaceView ProgressBar AutoCompleteTextView CompoundButton CheckBox RadioButton ToggleButton SeekBar RatingBar
View – 뷰 그룹 뷰 그룹 : 직접적으로 보이지 않으며 다른 뷰를 담는 컨테이 너 역할을 한다. 이름 그대로 여러 개의 뷰를 유기적으로 모 아 놓은 것이다. 쉽게 말해 이 부류를 레이아웃이라 칭한다. Object View ViewGroup FrameLayout AbsoluteLayout RelativeLayout LinearLayout WebView ScrollView. HorizontalScrollView TabHost. TimePicker. DatePicker ViewAminator ViewFlipper TextSwitcher ViewSwitcher ImageSwitcher RadioGroup. ZoomControls TableLayout. TableRow TabWidget AbsListView ListView GridView AbsSpinner Spinner Gallery AdapterView
View - Text View Text View ? 주 사용 속성 이름 그대로 화면에 텍스트를 출력하는 위젯. 사용자의 입력을 받아들이지는 않는다. 주 사용 속성 Text TextColor textSize TextStyle 출력할 문자열 지정 문자열의 색상을 지정한다. 폰트의 사이즈를 지정한다. 폰트의 속성을 지정한다. 디폴트로서 빈문자열을 가진다. 디폴트로서 밝은 회색을 가진다. Sp, dp, px, in, mm 등의 단위를 지정해야한다. Normal, bold, italic 중 하나를 쓰거나 묶어쓰는것이 가능하다.
View – TextView 예제
View - ImageView ImageView ? 주 사용 속성 이미지 뷰는 아이콘이나 비트맵을 출력하는 위젯이다. 리소스, 파일 등은 기본에 웹 상의 이미지 역시 표기가 가능 하다. 주 사용 속성 Src maxHeight maxWidth adjustViewBounds 이미지 지정 이미지가 출력될 크기 지정 이미지의 종횡비를 맞추기 위해 이미지 뷰의 크기를 조절한다. @drawable/ID 형식으로 표기 모바일 장비의 해상도가 충분하지 않으므로 크기를 제한할 필요가 있다. true 나 false 중 하나를 활용한다.
View - ImageView 주 사용 속성 cropToPadding Tint scaleType 위젯의 주어진 여백에 맞추기 위해 이미지 일부를 자른다. 이미지에 색조를 입히는 기능. 이미지의 원래 크기와 다르게 출력할 때 적용할 확대, 축소 알고리즘을 지정한다. True or false 로 표기한다. #aarrggbb 형식으로 색상을 지정하는데 이 색상이 이미지 위에 살짝 덥혀 출력된다. Matrix, fitxy, center, centerCrop, centerInside 등의 여러가지 알고리즘 중 하나를 지정한다.
View - ImageView 이미지 등록 방법
View – ImageView 예제
View – Button & EditText 사용자의 명령을 전달받는 위젯 EditText ? 문자열을 입력 받는 위젯 사용자의 입력을 받아 들이는 위젯은 내용을 출력 만 하는 위젯에 비해 속성도 더 많고 이벤트도 처 리해야 하므로 훨씬 더 복잡하기 때문에 이번 실습 에서는 간단한 이벤트 처리만 소개함.
View – Button & EditText 예제
View – Button & EditText 예제
ViewGroup - Layout Layout 이란 보여지는 시각물을 보다 간결하게 정 리, 배열, 배치하는 효과와 함께 가독성을 높이기 위한 작업 과정을 말한다. 이와 같이 TextBox 의 크기나 위치를 조절할 수 있다
ViewGroup - Layout 안드로이드 프로그래밍에서의 레이아웃은 사용자 에게 어떻게 보여줄것인지, 어떻게 비춰질것인지 를 고려해서, UI를 만들고, 위젯들을 구성하고 배 치하고, 좀 더 적합하게, 좀 더 효율적으로, 좀 더 편하게 쓸 수 있도록 해주는 것. 안드로이드는 모바일플랫폼. 모바일디바이스는 굉장히 작은 디스플레이를 사용하기 때문에,작은 화면 안에서 모든 것을 보여주고 사용할 수 있도록 되어있다. 그러면서도 필요한 요소들은 화면에 나 와있어야 하고, 불필요한 요소들은 최대한 제거해야 하지 요.
ViewGroup - Layout 즉, 포인트는 어떻게 하면 내가 원하는 데로 사용 자에게 보여줄 수 있는가 이다. 그러기 위해서는 다음과 같은 사항을 이해 해야 한 다. 1. UI에 사용되는 위젯(뷰)들을 이해하자. 2. 각 위젯의 속성을 이해하자. 3. 위젯과 위젯의 관계를 이해하자. 4. 화면을 설계하자.
Layout - LinearLayout Android 의 기본 Layout 은 LinearLayout. 왠만한 UI는 LinearLayout과 다른 위젯들을 함께 쓴다면 충분 히 만들어 낼 수 있습니다! LinearLayout을 컨트롤 하기 위한 몇 가지 속성 android:layout_width 속성 - 이 속성은 레이아웃의 가로크기를 나타냅니다. android:layout_height 속성 - 이 속성은 레이아웃의 세로크기를 나타냅니다.
Layout - LinearLayout 부모크기만큼(부모의 전체크기중에서, 내가 지금 작성한 레이아웃보다 먼저 작성된 레이아웃을 제외하고 남은 크기) SDK 2.2부터는 match_parent 로 사용 가능. Match_parent 는 fill_parent와 같은 값이지만, 아직은 모든 디바이스가 2.2 이상의 SDK를 사 용하지 않으니, 이 값은 거의 사용하지 않는다. 가지게 될 데이터 크기만큼 내가 작성하려는 레이아웃이 가지게될 자식 레이아웃들의 크기가 얼마나 커질지 알 수 없는 상 황일때 사용. 또는, 텍스트 뷰, 이미지 뷰의 경우에는 입력받게될 텍스트, 입력될 이미지의 크기에 따라 레이 아웃의 크기를 변경할때 사용. pixel 또는 dp(dip)로 직접지정 직접 숫자를 지정해서 레이아웃을 작성 가능 dp의 경우에는 잘만 사용한다면 왠 만한 경우에 대해서도 같은 UI를 제공할 수 있는 방법이기 때문에 추천되는 경우이지만, pixel의 경우에는 상당히 비 추천하는 방법. dp를 사용하는 방법은 많은 Resource를 제공해 줄 수 없는 상황에서 상당히 현명하고 유리한 선택이 될 수 있습니다. 모든 리소스를 제공할 수 있다면 모든 디바이스에 같은 UI를 보여줄 수 있겠지만 이는 사실상 힘들다.
Layout - gravity와 layout_gravity android:gravity 속성 이 속성은 현재 작성하고 있는 레이아웃의 자식 레이아웃들 이 중력을 어디로 가질지 정해줍니다. android:layout_gravitiy 속성 이 속성은 현재 작성하고 있는 레이아웃의 중력을 어디로 가 질지 정해줍니다. 해당 값들은 논리적으로 만족할 경우 복수의 값을 지정가능.
Layout - gravity와 layout_gravity android:gravity & android:layout_gravity 에 설 정할 수 있는 값 Left, right, top, bottom, center_vertical, center_horizontal, center
Layout - gravity와 layout_gravity 실습 예제
Layout – layout_weight android:layout_weight 는 기본적으로 비율을 나 타내는 속성 layout_weight에 0의 값을 준다면, 이 레이아웃은 절 대적으로, 배정받은 크기만큼의 영역을 차지하겠다 라 고 선포하는 것
Layout – layout_weight 실습 예제
Layout - AbsolutLayout AbsoluteLayout은 이름 그대로 관계나 순서에 상관없이 지정한 절대 좌표에 차일드 뷰를 배치하 는것을 말한다. 규칙이 매우 단순하므로 다음 예제를 참고한다.
Layout – AbsolutLayout 예제 Absolutelayout xml
Layout - TableLayout TableLayout은 이름이 의미하는 바대로 표 형식 으로 차일드를 배치하는 레이아웃이다. 표는 가로, 세로로 줄을 긋고 각 줄이 만나는 행과 열로 구성되는데 쉽게 말해서 바둑판 모양이라고 생각하면 된다. 테이블은 임의 개수의 TableRow 객체로 구성되며 이 객체 하나가 곧 행이 된다.
Layout – TableLayout - 예제 TableLayout xml
실습 지금까지 활용한 예제를 사용. 메인화면에 3개의 버튼을 두어 1번은 TextView 예제를 2번은 ImageView 예제를 3번은 Button & EditText 예제를 호출한다. 메인화면은 활용하고 싶은 Layout 을 활용할 것. (아래에 셋 중 하나로 해도 무방) 1번은 LinearLayout 을 활용할 것. 2번은 AbsoluteLayout 을 활용할 것. 3번은 TableLayout 을 활용할 것.
결과 화면 메인 화면
결과 화면 TextView 화면 입니다.
결과 화면 ImageView 화면 입니다.
결과 화면 Button & Edit 화면 입니다.
Import 방법 이런 식으로 사용할 view에 대한 패키지를 Import 해줘야 합니다.