본문 바로가기

안드로이드 코틀린179

[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.
[Android][kotlin] EditText Submit처럼 사용하기 안녕하세요. 오늘은 EditText 텍스트에 Enter 키를 입력받도록 적용해보겠습니다. 1. Activity를 생성합니다. 2. Activity의 레이아웃에 사용자의 input을 받을 EditText와, 결과를 나타낼 textView를 생성합니다. 3. EditText가 있는 Activity에 작성합니다. override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val editText = findViewById(R.id.input) val textView = findViewById(R.id.result) editText.setOnKey.. 2022. 4. 6.
[Kotlin][Android] 안드로이드 OCR 기능 만들기 java 버전은 https://stickode.tistory.com/135 에서 확인해주세요 안녕하세요~ 오늘은 OCR(Optical character recognition) 기능을 구현해 보겠습니다. OCR는 인간이 종이 위에 써 놓은 글씨를 인지하여 텍스트 데이터로 바꿔주는 기능을 말해요. 이 포스팅에서는 스틱코드를 사용하여 글자가 들어 있는 이미지에서 글자를 인식하는 간단한 앱을 만들어보겠습니다. # 환경 세팅 1. 라이브러리 추가 ▶ 해당 기능을 사용하기 위해서는 tess-two라는 모듈이 필요합니다. 위 그림처럼 build.gaddle(moudle) 파일을 열어서 맨 아래 한 줄을 추가하고 동기화시켜줍니다. 최신 버전은 여기서 확인하실 수 있습니다. 2. Language Data 추가 ▶ 인식할.. 2022. 4. 1.