본문 바로가기

Android Studio10

안드로이드 #10 : 알림 만들기 230306 알림 만들기 실습 build.gradle에 뷰바인딩 추가 viewBinding { enabled = true } activity_main.xml java파일폴더 - 마우스우클릭 - new - other - Broadcast Receiver package com.example.ch10_notification import android.app.NotificationManager import android.app.RemoteInput import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.util.Log import androidx.appcompat.app... 2023. 3. 7.
안드로이드 #9 : Resource 230306 앱 리소스 사용하기 - 리소스 디렉터리명은 고정 - 리소스 파일명은 values에 추가하는 파일을 제외하고는 모두 자바의 이름 작성 규칙 준수 - 알파벳 대문자를 사용할 수 없음 디렉토리 리소스 animator 속성 애니메이션 XML anim 트윈 애니메이션 XML color 색상 상태 목록 정의 XML drawable 이미지 리소스 mipmap 앱 실행 아이콘 리소스 layout 레이아웃 XML menu 메뉴 구성 XML raw 원시 형태로 이용되는 리소스 파일 values 단순 값으로 이용되는 리소스 xml 특정 디렉터리가 정의되지 않은 나머지 XML 파일 font 글꼴 리소스 리소스 종류 태그 설명 도형. android:shpape="rectangle"처럼 shape의 속성을 이용해 도형의 타입을 .. 2023. 3. 6.
안드로이드 #8 : chronometer 스탑워치 앱 230306 package com.example.ch8_event import android.os.Bundle import android.os.SystemClock import androidx.appcompat.app.AppCompatActivity import com.example.ch8_event.databinding.ActivityMain7Binding class MainActivity7 : AppCompatActivity() { // 뒤로가기 버튼 var initTime = 0L // 멈춘시간 저장 var pauseTime = 0L override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val binding .. 2023. 3. 6.
안드로이드 #7 : 이벤트 처리하기 230303 터치 이벤트 - 터치 이벤트의 콜백 함수인 onTouchEvent()를 선언 - 매개변수는 MotionEvent 객체 - 이 객체에 터치의 종류와 발생 지점(좌푯값)이 담김 class MainActivity1 : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main1) } override fun onTouchEvent(event: MotionEvent?): Boolean { return super.onTouchEvent(event) } } 터치 이벤트의 종류 ACTION_DOWN: 화면을 손가락으.. 2023. 3. 3.
안드로이드 #6 : 전화걸기 화면에서 숫자누르기, back버튼, #(리셋) 기능 추가(이벤트 실습) 230303 package com.example.ch8_event import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import com.example.ch8_event.databinding.ActivityMain2Binding class MainActivity2 : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val binding = ActivityMain2Binding.inflate(layoutInflater) setContentView(binding.root) binding.b1.se.. 2023. 3. 3.
안드로이드 #5 : 전화걸기 화면 만들어보기(레이아웃 실습) 230303 2023. 3. 3.
안드로이드 #4 : 레이아웃 230302 LinearLayout - 선형으로 배치 - LinearLayout은 뷰를 가로나 세로 방향으로 나열하는 레이아웃 - orientation 속성에 horizontal이나 vertical값으로 방향을 지정 - layout_weight 속성 : 여백을 채움 ▶뷰 1개로 전체 여백을 채움. android:layout_weight="1" ==> 100%라는 의미 ▶여러 개로 여백을 나누어 채우기 layout_weight 속성에 지정한 숫자는 가중치 layout_weight값을 각각 1과 3으로 선언했다면 가로 여백을 각각 1/4만큼, 3/4만큼 나누어 차지 - gravity, layout_gravity 속성 ▶뷰를 정렬 ▶gravity 속성의 정렬 대상은 콘텐츠 ▶layout_gravity는 뷰 자체를 정렬하는.. 2023. 3. 3.
안드로이드 #3 : 뷰 바인딩 230228 뷰 바인딩 - 레이아웃 XML 파일에 선언한 뷰 객체를 코드에서 쉽게 이용하는 방법 - 액티비티에서 findViewById() 함수를 이용하지 않고 레이아웃 XML 파일에 등록된 뷰 객체를 쉽게 사용할 수는 방법 제공 android { ... viewBinding { enabled = true } } - 레이아웃 XML 파일에 등록된 뷰 객체를 포함하는 클래스가 자동으로 만들어짐 - 자동으로 만들어지는 클래스의 이름은 레이아웃 XML 파일명 - 글자를 대문자로 하고 밑줄(_)은 빼고 뒤에 오는 단어를 대문자로 만든 후 ‘Binding’을 추가 - activity_main.xml → ActivityMainBinding - item_main.xml → ItemMainBinding - 자동으로 만들어진 클래스.. 2023. 3. 2.
안드로이드 #2 : 뷰 클래스(TextView, ImageView, EditText, CheckBox, RadioButton, Button) 230228 뷰의 간격 - 뷰의 간격은 margin과 padding 속성으로 설정 - margin, padding 속성을 이용하면 간격이 네 방향 모두 같은 크기로 설정 paddingLeft paddingRight padding Top paddingBottom layout_marginLeft layout_marginRight layout_marginTop layout_marginBottom - visibility 속성은 뷰가 화면에 출력되어야 하는지를 설정 - visible, invisible, gone으로 설정 - invisible은 뷰가 화면에 보이지 않지만 자리는 차지 - gone으로 설정하면 자리조차 차지하지 않음 - 코드에서 뷰의 visibility 속성을 조정하려면 뷰의 visibility 속성값을 Vie.. 2023. 2. 28.