본문 바로가기

안드로이드 코틀린145

[Kotlin][Android] API 키 없이 지도 사용하기 - Osmdroid 이번시간에는 api없이 무료로 사용할 수 있는, 오픈소스 osmdroid를 사용해서 지도를 띄워보겠습니다. osmdroid에 대한 자세한 정보는 깃허브에 가시면 확인하실 수 있습니다. https://github.com/osmdroid/osmdroid 1. build.gradle에 선언해줍니다. + Manifest에서 인터넷 사용 설정을 해둡니다. 2. XML 레이아웃에 사용할 mapview를 표시해줍니다. 3. mapView에서 사용할 위도와 경도를 입력해준다. override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val mapVie.. 2022. 5. 14.
[Kotlin][Android] 스피너 만들기 오늘은 코틀린을 사용해서 스피너 라는것을 만들어 보겠습니다. 스피너는 값 집합에서 하나의 값을 선택할 수 있는 빠른 방법을 제공합니다. 기본 상태의 스피너는 현재 선택된 값을 표시합니다. 스피너를 터치하면 기타 모든 사용 가능한 값을 포함하는 드롭다운 메뉴가 표시되며, 여기서 새 값을 선택할 수 있습니다. Spinner 객체를 사용하여 레이아웃에 스피너를 추가할 수 있습니다. 이 작업은 일반적으로 XML 레이아웃에서 요소를 사용하여 실행해야 합니다. 아래 예시를 보여드리겠습니다. Mercury Venus Earth Mars Jupiter Saturn Uranus Neptune 위와 같이 array라는 xml 파일을 또 만듭니다. 이러한 배열과 함께 Activity 또는 Fragment에 다음 코드를 사용.. 2022. 5. 13.
[Kotlin][Android] setOnItemSelectedListener 을 이용한 Bottom Navigation 스틱코드에서 바텀네비게이션을 다뤘었는데요 그럼에도 불구하고 다시 다루는 이유는 기존에 BottomNavigationView, setOnNavigationItemSelectedListener를 사용해서 바텀네비게이션을 구혔했었습니다. 하지만, 현재 deprecate 되었습니다. 참조 링크 : https://github.com/material-components/material-components-android/blob/master/lib/java/com/google/android/material/bottomnavigation/BottomNavigationView.java#L223 GitHub - material-components/material-components-android: Modular and c.. 2022. 5. 7.
[Kotlin][Android] 수업 종료 날짜 계산하기 (주 단위) java 버전은 https://stickode.tistory.com/236 를 확인해주세요. 안녕하세요! 오늘은 스틱 코드를 이용하여 수업 종료 날짜를 계산해 보겠습니다. 예를 들어, 주 1회, 총 수업 횟수 20번, 수업 시작일이 '2021-07-04' 에 시작한다 가정해 보았을 때 수업이 언제 끝나고 오늘로부터 얼마나 남았는지, 무슨 요일인지 계산을 해보도록 하겠습니다. * 계산된 예시 앱을 실행하여 계산을 하면 다음과 같은 결과를 얻을 수 있습니다. 1. 목표 일 계산 먼저 시작일 포함 총 20회 수업을 들었을 때 마지막 수업 일을 구하는 메소드를 만들어 보도록 할게요. companion object { var dateFormat = "yyyy-MM-dd" // 전역 변수 } // startDate.. 2022. 5. 3.
[Kotlin][Android] 쉐어드 프리퍼런스 사용하기 키-값 데이터 저장 을 할때 안드로이드에서 제공하는 쉐어드 프리퍼런스라는 것에 대해 오늘 사용해보겠습니다. 저장하려는 키-값 컬렉션이 비교적 작은 경우 SharedPreferences API를 사용해야 합니다. SharedPreferences 객체는 키-값 쌍이 포함된 파일을 가리키며 키-값 쌍을 읽고 쓸 수 있는 간단한 메서드를 제공합니다. 각 SharedPreferences 파일은 프레임워크에서 관리하며 비공개이거나 공유일 수 있습니다. val sharedPref = activity?.getSharedPreferences( getString(R.string.preference_file_key), Context.MODE_PRIVATE) 공유 환경설정 파일의 이름을 지정할 때 앱에 고유하게 식별할 수 있.. 2022. 5. 1.
[Kotlin][Android] 안드로이드 코루틴(Coroutine) 으로 타이머 기능 만들기 첫번쨰로 해야할것은 gradle 에 3가지를 추가해줘야합니다. 해당 예제는 코루틴, ViewModel, LiveData를 사용하기 떄문에 아래와 같이 해줍니다. // 코루틴 implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9' // ViewModel implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.0" // LiveData implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.3.0" 두번쨰로는 VIewModel 을 아래와 같이 작성해줍니다. class MainViewModel : ViewModel() { // S.. 2022. 4. 25.
[Android][Kotlin]BackPressed시, 중첩된 Fragment 순서대로 종료하기 이번 시간에는 Fragment 안에 Fragment를 사용한 중첩 구조에서, BackStack을 쌓고 하나씩 종료하는 방법에 대해서 알아보겠습니다. 구조는 다음과 같습니다. MainActivity - Fragment A - FragmentA1 - FragmentA2 - Fragment B - FragmentB1 - FragmentB2 1. 메인 Activity를 생성합니다. 그리고 Fragment A, B 전환 버튼을 만들어 줍니다. A, B 버튼을 누른채로 화면과 같이 오른쪽 마우스 클릭 -> Horizontal Chain을 생성합니다. 가로축으로 체인이 생성되면서 두 버튼이 일정 간격으로 떨어져서 위치하게 됩니다. 하지만 보통 BottomNav에서는 LinearLayout 가로 정렬에서 Weight를.. 2022. 4. 23.
[Kotlin][Android] 삼각형 그리기 (OpenGL) 안녕하세요. 이번 시간에는 OpenGL을 사용하여 스마트폰 화면 위에 삼각형 렌더링 하는 방법에 대해서 알아보겠습니다. - OpenGL ES2.0을 사용하겠습니다. 우선 Manifest에 사용을 표시해줍니다. ... .. 그 후 시작 화면을 위한 MainActivity를 만들어주고, 그 레이아웃에 GLSurfaceView를 추가합니다. XML에 있는 GLSurfaceView를 MainActivity의 멤버변수 mSurfaceView로 참조합니다. 이후, GLSurfaceView를 사용하기 위하여 필요한 초기화를 해줍니다. setELContextClientVersion(); 함수를 사용하여, 어떤 openGL버전을 사용할지 정해줍니다. 그 GLSurface의 Renderer 방식을 연결하면 됩니다. 초기화.. 2022. 4. 16.
[Kotlin][Android] AAC ViewModel + LiveData+ Databinding 이용 숫자 증감 class ViewModel(application: Application) : AndroidViewModel(application) { var num = MutableLiveData() init { num.value = 0 } fun addNum(){ num.value = num.value?.plus(1) } fun subtractNum(){ num.value = num.value?.minus(1) } } 1. Gradle 세팅 plugins { id 'com.android.application' id 'kotlin-android' id 'kotlin-android-extensions' id 'kotlin-kapt' } android { ... buildFeatures{ dataBinding true }.. 2022. 4. 11.