Loading...
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값을 바꿔줄 수 있다. 또한, 뷰를 누르면 상하좌우에 원..

2024. 3. 11. 18:26

[Android Study] 레이아웃 - GridLayout

* GridLayout은 행과 열로 구성된 테이블 화면을 만드는 레이아웃 클래스이다. LinearLayout과 마찬가지로 orientation 속성으로 가로나 세로 방향으로 뷰를 나열하는데, 자동으로 줄바꿈을 해준다. orientation: 방향 설정 rowCount: 세로로 나열할 뷰 개수 columnCount: 가로로 나열할 뷰 개수 - GridLayout에 추가한 뷰의 크기는 기본으로 wrap_content로 지정된다. 따라서, layout_width, layout_height속성을 설정하지 않아도 된다. * 특정 뷰의 위치 조정하기 - GridLayout으로 뷰를 배치하면 추가한 순서대로 배치되는데, layout_row, layout_column 속성을 이용하면 특정 뷰의 위치를 조정할 수 있다...

2024. 3. 11. 02:06

[Android Study] 레이아웃 - RelativeLayout

* RelativeLayout은 상대 뷰의 위치를 기준으로 정렬하는 레이아웃 클래스이다. 즉, 화면에 이미 출력된 특정 뷰를 기준으로 방향을 지정하여 배치한다. 아래 속성을 이용하며 각 속성에 입력하는 값은 기준이 되는 뷰의 id 이다. android:layout_above - 기준 뷰의 위쪽에 배치 android:layout_below - 기준 뷰의 아래쪽에 배치 android:layout_toLeftOf - 기준 뷰의 왼쪽에 배치 android:layout_toRightOf - 기준 뷰의 오른쪽에 배치 * 맞춤 정렬하는 align 속성 - 위의 사진처럼 hello 버튼을 오른쪽에 배치했는데 이미지의 세로 크기가 버튼보다 커서 버튼이 이미지 위쪽기준으로 배치가 되었다. 이 때 버튼을 이미지의 아래쪽 기..