안드로이드스튜디오 11

[안드로이드] MediaPlayer 사용해서 fragment에서 mp3 재생하기

화면 전환 시 각 화면의 음성안내를 해 줄 mp3를 재생해야 하는 작업을 했었다. 안드로이드에서 제공하는 MediaPlayer를 이용해서 쉽게 mp3파일을 재생할 수 있다.1. mediaPlayer 변수 셋팅 및 초기화 private var mediaPlayer : MediaPlayer? = null mediaPlayer = MediaPlayer.create(context, R.raw.a001) mediaPlayer?.start() mediaPlayer 변수 생성하고 MediaPlayer.create(context, 파일명) 을 작성하고 start() 해주면 해당 화면에서 파일이 재생된다. 2. 파일 재생 완료 후 작업 실행 파일 재생 완료 후 시점에 액션을 넣어주려면 setOnCompletionL..

android custom switch / androidx.appcompat.widget.SwitchCompat 디자인 적용 안되는 이슈

안드로이드 개발하면서 custom switch를 적용해야하는 일이 있었다. ↑ 이런 디자인인데 처음에 swithch를 사용했는데 이렇게 androidx.appcompat.widget.SwitchCompat 사용하라는 말~ 근데 무시했었다.근데 아무리 별짓을 다해도 원하는 사이즈보다 작게 셋팅이 되어서 며칠간 찾아보다가 해결책을 찾았다!! 1. androidx.appcompat.widget.SwitchCompat 로 변경 switchCompat에서는 track이랑 thumb 디자인 네임스페이스가 아래와 같이 사용해서 변경해주었다.app:track="@drawable/selector_switch"android:thumb="@drawable/selector_switch_thumb" 2. switchMinWid..

[안드로이드/kotlin] RecyclerView 적용하기

RecyclerView는 한정적인 사이즈의 화면안에 많은 데이터를 넣을 수 있는 뷰이다.상하로 또는 좌우로 스와이프하면서 많은 데이터를 화면에서 볼 수 있다.우리가 사용하는 대부분의 앱에 적용되어 있지 않나 싶다. 쇼핑몰에서 다양한 상품을 보기위해 상하로 올리듯이.. RecyclerView는 ListView의 단점인 아이템 생성과 삭제를 반복하는 작업을 개선하여 뷰를 재활용하기 때문에훨씬 성능이 좋다고 말할 수 있다. RecycleView를 보여줄 xml에 추가하기item_menu.xml재활용할 화면에 나올 레이아웃을 생성해줍니다. 저는 textview 2개에 imageView 1개를 추가하였습니다. Menu dataclass 정의 data clas..

[안드로이드/kotlin] 스와이핑해서 화면 전환하는 viewpager2 적용하기

한 화면에서 좌우로 스와이핑하여 다른 화면이 보여지는 것을 구현해야한다. viewPager2 추가 보여줄 fragment에 viewpager2를 추가한다.  2개의 화면을 보여줄 예정이므로 fragment_one, fragment_two 추가각 Fragment.kt 파일과 xml파일을 연결한다.Adapter 생성class MenuContentAdapter(fragment: MenuContentFragment) : FragmentStateAdapter(fragment) { override fun getItemCount(): Int = 2 // 프래그먼트 수 override fun createFragment(position: Int): Fragment { return when (pos..

[안드로이드/Kotlin] Custom progress bar 적용하기

지난 1년간 자바로 UI없는 서비스앱만 개발하다가 다시 코틀린으로 UI를 개발하는데 모르는 부분들 나중에 기억하려고 작성한다. 지난 1년간 전기자동차 완속 충전기 개발한것도 짬날때 슬슬 정리해야겠다... 전체 이동거리중 현재 이동거리 정도를 나타내기 위해서 progress bar를 사용해서 나타내려고한다.예전에 seekbar를 사용해서 구현한 적이 있었는데 thumb처리하는것도 복잡하고해서 이번엔 progress bar로 구현했다. /res/drawable/custom_progressbar.xml을 생성 ..

[안드로이드] SDK location not found. Define location with an ANDROID_SDK_ROOT environment variable~ 오류 해결 방법

:prepareKotlinBuildScriptModel Task fails in a Java project 깃허브에 있는 라이브러리를 사용하려고 다운받아서 빌드하니깐 이러한 오류가 나타났다. 검색을 해보니 build.gradle에 tasks.register("prepareKotlinBuildScriptModel"){} 이거를 추가하면 해결된다해서 했는데 아래와 같은 오류가 또 발생... 위에 에러는 properties 파일에 sdk 경로가 맞지 않아서 나는 오류라고 한다. 그래서 고급 시스템 설정 -> 환경변수에 새로 만들기해서 아래꺼를 추가해 주면 된다

[Kotlin] 안드로이드 데이터 엑셀화하기(.csv)

안드로이드 내에 발생한 데이터를 저장하는 여러 방법 중 파일로 저장하는 작업이다. apache를 이용해서 라이브러리 사용해서 데이터를 저장하려고 했으나 예전 버전은 엑셀 2007을 사용해서 한 열에 256개 밖에 데이터를 저장하지 못해서 .csv로 저장하기로 변경했다. 1. CSV란 CSV(영어: comma-separated values)는 몇 가지 필드를 쉼표(,)로 구분한 텍스트 데이터 및 텍스트 파일이다. .csv파일은 콤마(,)로 데이터를 분류하면 알아서 자동으로 엑셀 파일에 값을 넣어주는 방식이다. (진작 이렇게 할걸,,,) 2. 파일 저장 경로 및 파일 이름 val dir = "/storage/emulated/0/Documents" val file_name = date + "_" + name ..

[Kotlin] 안드로이드 LottieAnimationView

어플리케이션을 만들다보면 기능도 중요하지만 사용자가 얼마나 사용하기 편하고 직관적이며 외관적으로 예뻐야한다 같은 것이라도 이쁘면 한번더 눈길이 가는법! 그래서 앱에 예쁜 아이콘이나 애니메이션이미지를 넣어서 시각적 효과를 높일 때 주로 로티를 사용한다. airbnb에서 만든것이라고 하는데 숙박 예약어플에서 이런것도 만드는구나...!! 대박 json 형태로 안드로이드, IOS, React Native에서 다양하게 사용할 수 있다고한다. 1. build.gradle에 추가 implementation 'com.airbnb.android:lottie:3.7.0' //lottie 애니메이션 2. res파일밑에 raw디렉토리 추가하기ㅣ 3. 아래 링크에 들어가면 다양한 애니메이션이 있음 -> 다운로드 후 raw에 추..

[Kotlin] 안드로이드 Linegraph 사용하기 (MPAndroidChart)

이번 프로젝트에서 ESP32에서 센서값을 가져와서 안드로이드 앱에서 그래프로 나타내주는 것을 했다 아직 블루투스 연결은 하지 않고 난수를 이용해서 그래프 먼저 구현을 하려는데 예제도 별로 없고 코틀린으로 짠건 더더욱 없어서 애먹었었다. 내 글을 보고 다른 사람들은 쉽게 해결할 수 있었으면 좋겠다. 1. gradle dependencies에 추가 implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0' //그래프 2. setting.gradle에 추가 maven { url 'https://jitpack.io'} 이거를 추가하는 곳이 바껴서 애먹었다. 다른 사람들은 gradle에 같이 추가하던데 나는 계속 오류가 나서 헤매다가 setting.gradle에 추가하..