안드로이드/깡샘의 안드로이드 앱 프로그래밍

안드로이드/깡샘의 안드로이드 앱 프로그래밍

코틀린 공부22

소리와 진동 알림 소리 알림 안드로이드 시스템은 알림(NOTIFICATION), 알람(ALARM), 벨소리(RINGTONE) 등의 소리를 제공하며 이 소리는 RingtonManager로 얻을 수 있습니다. // 1. getDefaultUri()함수를 통해 소리의식별값을 Uri객체로 얻습니다. val uriNotification : Uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); // 2. getRingtone()함수를 통해 위에서 얻은 소리식별Uri를 사용하여 Ringstone 객체 생성 val ringtone = RingtoneManager.getRingtone(applicationContext, uriNotificatio..

안드로이드/깡샘의 안드로이드 앱 프로그래밍

코틀린 공부21

다양한 다이얼로그 다이얼로그란 사용자와 상호 작용하는 대화 상자를 의미합니다. 토스트 메시지 띄우기 토스트(toast)는 화면 아래쪽에 잠깐 보였다가 사라지는 문자열 다이얼로그를 말합니다. 토스트는 Toast의 함수인 makeText() 함수로 만듭니다. open static fun makeText(context: Context!, text: CharSequence!, duration: Int): Toast! open static fun makeText(context: Context!, resId: Int, duration: Int): Toast! makeText() 사용 예시 val toast1 = Toast.makeText(this,"종료하려면 한번더 눌러주세요!",Toast.LENGTH_SHORT)..

안드로이드/깡샘의 안드로이드 앱 프로그래밍

코틀린 공부20

퍼미션 설정하기 퍼미션이란 앱의 특정 기능에 부여하는 접근 권한을 말합니다. 안드로이드 시스템에서 보호하는 특정 기능을 이용할 때나 다른 앱에서 사용할 수 없도록 보호할 때 퍼 민션을 설정합니다 퍼미션 설정과 사용 설정 A 앱의 컴포넌트를 B 앱에서 사용하는 상황일때 A 앱의 컴포넌트에서 퍼미션을 설정하면 B 앱에서 연동할 때 문제가 발생합니다. 이럴 때는 B 앱에서 을 설정해줘야 합니다. 매니페스트 기능을 보호하려는 앱의 매니페스트 파일에 설정합니다. 퍼미션으로 보호된 기능을 사용하려는 앱의 매니페스트 파일에 설정합니다. 태그와 속성 name 퍼미션의 이름입니다. abel, description 퍼미션을 설명합니다. protectionLevel 보호 수준입니다. protectionLevel 속성값은 보..

안드로이드/깡샘의 안드로이드 앱 프로그래밍

코틀린 공부19

API 레벨 호환성 고려하기 minSdkVersion 16 targetSdkVersion 30 위말은 30버전의 API로 개발을 하였지만 16버전 기에서도 오류가 발생하지 않고 동작한다는의미입니다. 그러므로 minSdk 설정값보다 상위 버전에서 제공하는 API를 사용한다면 호환성을 고려해야 됩니다. 안드로이드 API문서를 보다보면 Added in API level 숫자"이라고 써져있는것을 볼수있습니다. 여기서는 숫자이후에 나온 버전들의 경우 호완성문제가 발생하지 않습니다. 그렇지만 그숫자 이전 버전으로 실행시키경우 호완성 문제가 발생하게 됩니다. 이때 필요한것이 @RequiresApi 애너테이션이나 @TargetApi 애너테이션입니다. @RequiresApi(Build.VERSION_CODES.R) //..

안드로이드/깡샘의 안드로이드 앱 프로그래밍

코틀린 공부18

폰 크기의 호환성 안드로이드폰 여러 제조업체에서 다양한 크기로 출시합니다. 그러므로 안드로이드앱에서는 다양한 기기와 호완되는 화면을 만드는것이 중요합니다. 폰크기의 호완성은 시스템에서 도와주는 부분과 개발자가 해결해야하는 부분으로 나눌수 있습니다. 안드로이드 시스템에서는 크기를 xxxhdpi, xxhdpi, xhdpi, hdpi, mdpi, ldpi로 나눌수 있습니다. dpi는 dots per inch의 줄임말로 1인치 안에 있는 도트의 개수를 의미 합니다. 화면 밀도 배율 크기 xxxhdpi 4.0 초초초고밀도 화면이며 ~640dpi xxhdpi 3.0 초초고밀도 화면이며 ~480dpi xhdpi 2.0 초고밀도 화면이며 ~320dpi hdpi 1.5 고밀도 화면이며 ~240dpi mdpi 1.0 중밀..

안드로이드/깡샘의 안드로이드 앱 프로그래밍

코틀린 공부17

리소스 조건 설정 리소스 조건 설정이란 리소스를 특정 환경에서만 적용되도록 설정하는 것을 말합니다. ex ) 기기별 실행 아이콘 크기같은경우 기기마다 디스플레이 크기가 다르므로 리소스 조건 설정하여 보기 좋게 만들어줌 코드에서도 설정할수 있지만 이렇게 나열될 경우 프로그램이 복잡해지고 리소스를 사용하는 목적과도 맞지 않습니다. 화면 밀도 크기 XXXHDPI 192*192 XXHDPI 144*144 XHDPI 96*96 HDPI 48*48 MDPI 36*36 리소스 조건을 이용하려면 아이콘의 파일명을 똑같이 지정해야 합니다. 대신 식별할 때는 다른 디랙터리명을 사용하여 구분을 해주면 해당 기기의 플랫폼이 알아서 적용시켜줍니다. 디렉터리명을 구분할 때는 소스 디렉터리 이름에서 붙임표(-) 뒤의 단어를 사용하..

안드로이드/깡샘의 안드로이드 앱 프로그래밍

코틀린 공부16

안드로이드에서 리소스란? 앱은 동작하면서 동적으로 발생하거나 변경되는 콘텐츠는 코드로 작성해야 합니다. 반대로 정적인 콘탠츠는 코드에 작성하지 않고도 리소스로 분리하여 외부 파일로 이용할 수 있습니다. 이처럼 리소스를 이용하면 코드를 작성할 때 더욱 간결하며 유지 보수하기도 편리합니다. 앱 리소스란 개발자가 직접 추가한 리소스를 의미합니다. 모듈 생성 시 오른쪽 그림과 같이 자동으로 res관련 디렉터리가 생깁니다. 기본적으로 4개의 디렉터리가 만들어지지만 리소스 파일의 종류는 더 많기 때문에 아래의 표와 같은 디렉터리를 res아래 만들어 쓸 수 있습니다. 참고로 리소스 디렉터리명은 고정이며 리소스 파일명은 values에 추가하는 파일을 제외하고는 모두 자바의 이름 작성 규칙 준수하여야 하고 알파벳 대문자..

안드로이드/깡샘의 안드로이드 앱 프로그래밍

코틀린 공부15

뷰 이벤트의 경우 액티비티의 화면은 여러 뷰로 화면을 구성합니다. 이런 뷰들의 이벤트들은 터치 이벤트들을 사용하지 않고 각각의 뷰들에 제공하는 이벤트들을 사용합니다. 이러는 이유는 여러 뷰들이 있는 경우 어디를 터치했는지 어떠한 뷰인지 등 여러 가지 요소들을 생각해봐야 할 때가 많습니다. 이렇게 되면 프로그래밍이 많이 복잡해지기 때문에 각각의 뷰에서 제공하는 이벤트들을 사용하는 것이 좋습니다. 터치이벤트와 키 이벤트 같은 경우 콜백 함수로 처리를 하였지만 뷰 이벤트는 콜백 함수로는 부족합니다. 뷰 이벤트 처리는 이벤트 소스와 이벤트 핸들러로 역할이 나뉘며 이 둘을 리스너로 연결해야 이벤트를 처리할 수 있습니다. 이벤트 소스: 이벤트가 발생한 객체 이벤트 핸들러: 이벤트 발생 시 실행할 로직이 구현된 객체..

안드로이드/깡샘의 안드로이드 앱 프로그래밍

코틀린 공부14

계층 구조로 배치 - ConstrainLayout ConstrainLayout은 안드로이드 플랫폼이 아니라 androidx에서 제공하는 라이브러리입니다. ConstrainLayout을 사용하려면 build파일의 dependencies에 implementation을 선언해야 하지만 이선언을 안드로이드 프로젝트를 만들 때 자동으로 추가되므로 직접 할 필요는 없습니다. ConstrainLayout은 뷰를 상대 위치로 배치하는 RelativeLayout과 비슷하지만 더 많은 속성을 제공합니다. 게다가 안드로이드 스듀디오는 코드가 아닌 마우스 클릭만으로 레이아웃을 구성할 수 있도록 레이아웃 편집기를 제공하므로 gui환경에서 자유롭게 xml을 구성할 수 있습니다. 사용자 이벤트 처리하기 터치이벤트의 경우 앱의 화면..

안드로이드/깡샘의 안드로이드 앱 프로그래밍

코틀린 공부13

상대 위치로 배치 - RelativeLayout RelativeLayout은 상대 뷰의 위치를 기준으로 정렬하는 레이아웃 클래스입니다. 즉 화면의 특정 뷰를 기준으로 방향을 지정하여 배치합니다. android:layout_above: 기존 뷰의 위쪽에 배치 / ex) android:layout_above="@id/testImage" android:layout_below: 기존 뷰의 아래쪽에 배치 / ex) android:layout_below="@id/testImage" android:layout_toLeftOf: 기존 뷰의 왼쪽에 배치 / ex) android:layout_toLeftOf="@id/testImage" android:layout_toRightOf: 기존 뷰의 오른쪽에 배치 / ex) an..

감자씨앗
'안드로이드/깡샘의 안드로이드 앱 프로그래밍' 카테고리의 글 목록 (3 Page)