분류 전체보기 76

[안드로이드] 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을 생성 ..

[아두이노] ESP32를 이용해서 안드로이드와 데이터 주고 받기

처음으로 아두이노 UNO말고 ESP32를 이용해보았어요 안드로이드와 bluetooth로 데이터를 주고 받는 작업을 해야해서 BT기능을 제공하는 esp32로 구현했습니다 아두이노 IDE에서 파일 > 예제 > BluetoothSerial에 들어가면 다양한 예제를 볼 수 있어요 #include "BluetoothSerial.h" #if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED) #error Bluetooth is not enabled! Please run `make menuconfig` to and enable it #endif #if !defined(CONFIG_BT_SPP_ENABLED) #error Serial Bluetooth ..

아두이노 2023.03.10

[아두이노] Arduino IDE에서 ESP32 사용하기

IoT에서 데이터를 주고 받을 때 와이파이 및 블루투스를 지원해주며 가격이 저렴한 ESP32를 많이 사용한다고 합니다. 그래서 좀 더 쉽게 코딩하기 위해서 Arduino IDE에 ESP32보드를 추가하는 방법을 알려드리겠습니다. 1. Arduino IDE 실행 > 파일 > 기본설정 2. 추가 보드 관리자 URL에 아래 주소 추가 https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json 3. 보드매니저 esp32 검색 설치하면 ESP32를 사용할 준비 끗!!

아두이노 2023.03.10

[안드로이드] 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 ..