본문 바로가기

안드로이드/부스트코스 안드로이드 기본편

(11)
[안드로이드 중급] 툴바(Toolbar) 툴바(Toolbar)는 안드로이드 5.0(21버전)에 도입이되었다. 툴바의 형태인 앱바는 5.0 이전에 액션바라고 불렸다. 기존의 액션바는 고정된 상태이지만, 툴바는 커스터마이징이 자유로워져서 사용자가 원하는 디자인을 만들 수 있다. 툴바를 추가하는 방법은 아래와 같다. AndroidManifest.xml에 Theme.AppCompat.Light.NoActionBar 설정을 한다. 레이아웃에 툴바를 추가한다. 액티비티에서 툴바 객체를 생성한다. 생성한 툴바 객체를 setSupportActionBar() 메소드의 인자로 지정하여 호출한다. 툴바 객체나 getSupportActionBar()를 사용하여 속성 수정한다. 간단한 예제를 구현해보도록 한다. 새로고침, 검색, 공유 메뉴를 만들고, 각각의 속성을 달..
[안드로이드 기본] 그리드뷰 사용방법 그리드뷰는 격자모양으로 아이템을 배치할 수 있는 컨테이너이다. 일반적으로, 이미지를 격자모양으로 배치할 때 사용을 주로 하지만, 텍스트와 더불어 버튼까지도 배치하는 것이 가능하다. 그리드뷰는 뷰 그룹이기때문에 최상단에 올 수가 있다. [activity_main.xml] 그리드뷰는 위의 코드와 같이 선언한다. 여기서 제일 중요한 부분은 numColumns 속성인데, 한줄에 5개의 아이템이 들어가는 속성이다. 그리드뷰는 각각의 아이템을 그려주기 위해서 어댑터 클래스를 사용해야한다. 어댑터는 데이터를 매칭시켜주는 역할을 한다. 나는 ImageAdapter를 만들어서 그리드뷰에 설정해주었다. [ImageAdapter.kt] package com.practice.demogridview import android...
[안드로이드 기본] 스크롤뷰 사용방법 스크롤뷰는 한 화면에 많은 뷰들을 보여줄 때 스크롤을 할 수 있게 해주는 뷰이다. 스크롤뷰의 특성으로는 하나의 뷰를 감쌀 수 있다는 것이다. 먼저 스크롤뷰의 간단한 예제로, 세가지의 텍스트뷰를 스크롤뷰 안에 넣어 보자. 하나의 뷰를 감쌀 수 있기 때문에 LinearLayout으로 세가지의 텍스트뷰를 감싸고 넣을 것이다. [activity_main.xml] 하나의 뷰(LinearLayout)는 스크롤뷰에 감싸지고, 화면에서 벗어난 뷰들을 스크롤을 통해서 하단으로 또는 상단으로 이동할 수 있게된다. 다음은 화면 하단부만 스크롤 할 수 있게 하고, 상단에 버튼을 고정시키는 코드이다. [activity_main.xml] 상위 LinearLayout에 버튼을 감싸고, 그 밑에 스크롤뷰로 묶었다. 그 스크롤뷰는 텍..
[안드로이드 기본] 멀티 터치를 감지하는 방법 스마트폰 앱을 보면, 두손가락으로 줌인을 하거나 줌아웃을 하는 경우가 있다. 또한, 한손가락 뿐만아니라 여러손가락도 사용을 할 경우도 발생한다. 이때 포인터를 가져와서 작업해야하는데, 멀티 포인터를 가져오기 위해 가장 기본적인 멀티 터치를 감지하는 방법에 대해서 알아보려고한다. 코드 구현 진행순서는 1. 텍스트 뷰가 두개 있는 activity_main.xml을 하나 만든다. (터치 했을 때 각 포인터의 X, Y의 값이 텍스트뷰에 보여줄것이다.) 2. 멀티 터치를 좌표값을 받아 올수 있는 터치 이벤트를 오버라이드 하는 MainActivity.kt를 만든다. 3. 포인터 값을 두개의 텍스트에 setText() 하여 UI로 나타낸다. 먼저 activity_main.xml을 만든다. [activity_main...
[안드로이드 기본] 기본 다이얼로그 띄우기 다이얼로그는 앱 개발을 하면서 정말 많이 사용한다. 지금은 비록 기본 다이얼로그를 띄우는 작업이지만, 다이얼로그 자체를 커스터마이징해 원하는 디자인으로 만들고, 버튼의 갯수도 지정도 가능하게 만들 수 있다. 간단한 정보를 몇초간 띄워주는 토스트(Toast)와는 다르기에 알아두면 도움이 될것이다. 기본적으로 다이얼로그는 타이틀과 메시지 그리고 버튼으로 구성된다. 다이얼로그의 종류는 AlertDialog, DatePickerDialog, PreogressDialog, TimePickerDialog 등이 있는데 아래 예제에서는 AlertDialog를 가지고 구현할것이다. AlertDialog 클래스의 메소드는 아래와 같이 정리할 수 있다. AlertDialog create() AlertDialog를 생성한다...
[안드로이드 기본] 터치 이벤트 순서 알아보기 안드로이드 사용자 인터페이스를 보면, 액티비티 위에 다양한 뷰들이 올라가는 방식이다. 그러다보면 이벤트가 중첩되어서 처리되는 경우가 있다. 예를 들어서, 어떤 액티비티에 터치 이벤트가 설정되어 있는데 그 위에 올라가 있는 뷰에도 터치 이벤트가 설정되어 있다면 어떻게 될까??? 그리고 그 뷰에 추가적으로 터치 리스너도 추가 되어 있다면 어떻게 동작할까? 무엇이 먼저 처리되지?? 터치 이벤트를 처리하고나서 해당 이벤트를 전달하고 싶지 않을 때 어떻게 해야할까?? 엑티비티위에 버튼이 올라간다고 하면, 그 버튼을 클릭했을 때 실질적으로는 버튼도 터치가 되지만, 그 해당 엑티비티도 선택이된다. 그렇다는 것은 각각 가지고 있는 터치 이벤트들이 전달 전달되어 실행된다는 것이다. 먼저 아래의 예제는 1. 엑티비티에 터..
[안드로이드 기본] 클릭 이벤트 붙이는 방법 일단 클릭하면 대표적으로 버튼을 떠올릴 수 있을 것이다. 그리고 우리는 그 버튼을 클릭했을 때 무언가 이벤트를 발생시키고 싶어한다. 버튼에 클릭 이벤트를 붙이는 방법에는 어떤것들이 있을까? 방법은 총 3가지로 나눌 수 있으며 아래와 같다. 1. 익명 클래스를 사용해서 버튼에 리스너 객체를 설정하는 방법 2. 버튼 리스너를 액티비티에서 구현하고 이 리스너를 버튼에 설정하는 방법 3. 레이아웃 XML 파일의 Button 속성에 onClick 요소를 추가하는 방법 [익명 클래스를 사용해서 버튼에 리스너 객체를 설정하는 방법] package com.practice.android_basic_booster_course import androidx.appcompat.app.AppCompatActivity import..
[안드로이드 기본] 액티비티와 주요 구성 요소 안드로이드에서 가장 중요한 4대 컴포넌트는 액티비티, 서비스, 브로드캐스트 리시버, 콘텐트 프로바이더이다. 그리고 그외의 인텐트, 인텐트 필터, 노티피케이션, 프래그먼트가 존재한다. 먼저 액티비티(Activity)는 사용자 인터페이스 화면을 구성하는 컴포넌트이다. 다양한 위젯들이 화면안에 구성이되고, 사용자에게 시각적으로 보여지게 된다. 서비스(Service)는 백그라운드에서 실행되는 컴포넌트이며, 백그라운드에서 실행되기때문에, 시각적인 사용자 인터페이스를 액티비티와 다르게 가지지 않는다. 인텐트(Intent)는 앱을 개발하다보면 데이터를 주고 받고 싶은 경우가 있다. 이때 인텐트를 사용하여 데이터를 주고 받게 되는데,사용되는 것이 인텐트이다. 액션도 넣을 수 있고, 플래그도 넣을 수도 있다. 메시지라고..