Loading...
2024. 3. 19. 00:14

[Android Study] 다이얼로그 - 커스텀 다이얼로그

* 커스텀 다이얼로그는 다이얼로그에서 개발자가 원하는 형태로 창을 구성하고 싶을 때 사용한다. - LayoutInflater 클래스는 레이아웃 XML 파일을 코드에서 초기화하는 기능을 제공한다. 여기서 초기화란 XML 파일에 선언한 뷰를 코드에서 이용하고자 생성하는 작업을 의미한다. XML 파일은 텍스트 파일일 뿐이며 결국 코드에서 이용하려면 XML에서 선언한 대로 객체를 생성해서 메모리에 할당해야 한다. 이 작업을 LayoutInflater가 해준다. - activity의 화면을 구성하는 레이아웃 xml 파일이라면 layoutInflater가 아닌 setContentView() 함수를 이용한다. * layoutInflater로 레이아웃 XML 파일을 초기화하는 방법은 다음과 같다. - 우선 getSys..

2024. 3. 18. 00:04

[Android Study] 다이얼로그 - AlertDialog

* 안드로이드 다이얼로그의 기본은 알림 창으로 불리는 AlertDialog이다. 알림 창은 크게 3가지 영역으로 구분된다. - 알림 창의 생성자는 접근 제한자가 protected로 선언되어서 객체를 직접 생성할 수 없다. 그 대신 AlertDialog.Builder를 제공하므로 이 빌더를 이용해 알림 창을 만든다. - 먼저 Builder를 생성하고 빌더의 세터 함수로 알림 창의 정보를 지정한다. AlertDialog.Builder(context: Context!) - 다음은 알림 창에 아이콘과 제목, 내용을 지정하는 함수이다. setIcon 함수는 제목 영역에 아이콘을 출력하며 setTitle 함수는 제목 문자열을 출력하고 내용에 간단한 문자열을 출력할 때는 setMessage 함수를 사용한다. fun ..

2024. 3. 17. 00:02

[Android Study] 다이얼로그 - Toast, 날짜/시간

* 다이얼로그(dialog)란 사용자와 상호 작용하는 대화상자이다. * 토스트 메세지 띄우기 - 토스트(Toast)는 화면 아래쪽에 잠깐 보였다가 사라지는 문자열을 의미하며 사용자에게 간단한 메세지로 특정한 상황을 알릴 때 사용한다. 대표적인 예시로는 폰의 뒤로가기 버튼을 눌렀을 때 "종료하려면 한 번 더 누르세요"같은 메세지가 뜨는 것이다. - 토스트는 Toast의 makeText() 함수로 만든다. makeText로 만든 토스트는 show() 함수로 화면에 출력한다. open static fun makeText(context: Context!, text: CharSequence!, duration: Int): Toast! open static fun makeText(context: Context!, ..

2024. 3. 16. 00:05

[Android Study] 퍼미션 설정하기

* 퍼미션(permission)이란 앱의 특정 기능에 부여하는 접근 권한을 의미한다. 개발하는 앱이 다른 앱이나 안드로이드 시스템에서 보호하는 특정 기능을 이용할 때 퍼미션 사용을 설정해야 한다. - 예를 들어, A앱의 개발자가 manifest 파일에 태그로 퍼미션을 설정하면 이를 이용하는 B 앱의 코드를 아무리 잘 구현하더라도 실행되지 않는다. 해당 퍼미션을 사용하려면 B앱의 manifest에 태그로 해당 퍼미션을 사용하겠다고 설정해 줘야 한다. * manifest 파일에 퍼미션을 설정할 때는 태그와 다음 속성을 이용한다. name: 퍼미션 이름, 퍼미션을 구별하는 식별자 역할을 한다. label, description: 퍼미션 설명, 퍼미션을 이용하는 외부 앱에서 권한 인증 화면에 출력할 퍼미션의 정..

2024. 3. 15. 00:16

[Android Study] 리소스

- 안드로이드 앱 개발에서 resource란 정적인 자원이라고 할 수 있다. 앱이 동작하더라도 변경되지 않는 정적인 콘텐츠는 코드에 작성하지 않고 리소스로 분리해서 외부 파일로 만들어 이용할 수 있다. 앱에서 이용하는 리소스는 크게 앱 리소스와 플랫폼 리소스로 구분된다. * 앱 리소스 - 앱 리소스란 개발자가 직접 추가한 리소스를 의미한다. 앱을 개발하기 위해 모듈을 만들면 자동으로 res 디렉토리가 생기고 그 아래에 drawable, layout, mipmap, values 라는 디렉토리 4개가 생성된다. 개발자는 이 리소스 디렉토리에 리소스 파일을 만들면 된다. 이 4가지 말고도 추가로 더 만들수도 있다. - 하지만, 리소스 파일을 만들 때는 이름짓는 규칙이 있다. 그냥 마구잡이로 aaa.xml, a..

2024. 3. 14. 00:07

[Android Study] 뷰 이벤트

- 액티비티 화면은 뷰로 화면을 구성하고 구현한다. 이런 뷰를 터치했을 때 이벤트 처리는 앞에서 정리한 '키 이벤트, 터치 이벤트'를 이용하지 않고 따로 각 뷰에서 이벤트를 제공한다. * 뷰 이벤트의 처리 구조 - 터치 이벤트와 키 이벤트는 이벤트 콜백 함수인 onTouchEvent(), onKeyDown()만 액티비티에 선언해 놓으면 처리가 가능하다. 하지만, 뷰 이벤트는 좀 더 복잡하다. 뷰 이벤트 처리는 이벤트 소스와 이벤트 핸들러로 역할이 나뉘며 이 둘을 리스너로 연결해야 이벤트를 처리할 수 있다. 이벤트 소스(event source): 이벤트가 발생한 객체 이벤트 핸들러(event handler): 이벤트 발생 시 실행할 로직이 구현된 객체 리스너(listener): 이벤트 소스와 이벤트 핸드러..

2024. 3. 13. 00:05

[Android Study] 이벤트 - 터치 이벤트, 키 이벤트

* 터치 이벤트 - 앱의 화면에서 발생하는 사용자의 터치 이벤트를 처리하고 싶다면 액티비티 클래스에 터치 이벤트의 콜백 함수인 onTouchEvent()를 선언하면 된다. 콜백 함수란 어떤 이벤트가 발생하거나 시점에 도달했을 때 시스템에서 자동으로 호출하는 함수를 말한다. class MainActivity: AppCompatActivity() { override fun onTouchEvent(event: MotionEvent?): Boolean { return super.onTouchEvent(event) } } - 액티비티에 onTouchEvent 함수를 재정의(override)해서 선언만 해놓으면 사용자가 이 액티비티 화면을 터치하는 순간 onTouchEvent() 함수가 자동으로 호출된다. onTo..

2024. 3. 12. 00:02

[Android Study] 레이아웃 - ConstraintLayout

* ConstraintLayout은 안드로이드 플랫폼이 아니라 androidx에서 제공하는 라이브러리이다. 따라서 사용하려면 build.gradle에 implementation을 해줘야 한다. 또한, 프로젝트를 만들 때 자동으로 만들어지는 레이아웃을 보면 기본 레이아웃이 ConstraintLayout으로 설정된다. - 안드로이드 스튜디오는 코드가 아닌 마우스 클릭만으로 레이아웃을 구성할 수 있도록 레이아웃 편집기를 제공한다. 레이아웃 XML 파일을 디자인 모드(오른쪽 위 버튼)로 열면 실행할 수 있다. - 왼쪽에 TextView나 ImageView 등을 드래그해서 화면에 가져온다음 오른쪽 Layout에서 상단 왼쪽 여백을 지정해주고 id값과 text값을 바꿔줄 수 있다. 또한, 뷰를 누르면 상하좌우에 원..