[Android/Kotlin] API 연결
·
공부/안드로이드
팀 프로젝트 하면서 사용했던 여러 api 연결 방법들 * 공통적으로 Header를 사용했으나 다른 곳에서는 사용하지 않을 수 있음 1. Parameter (파라미터) 없는 경우 DTO data class SigninDTO ( val status: Int, val isSuccess: Boolean, val accessToken: String?, val has: Boolean?, val message: String? ) Interface interface SigninInterface { @POST("링크") fun getSignin( @Header("Authorization") accessToken: String ): Call } Service class SigninService { val retrofit ..
[Android/Kotlin] 음성 녹화
·
공부/안드로이드
1. 변수 세팅 private var outputPath: String? = null// 녹화한 파일 저장 경로 private var mediaRecorder : MediaRecorder? = null private var state : Boolean = false// 녹음 상태 private var hasRecorded : Boolean = false// 녹화되었는지 여부 private var timerHandler: Handler? = null// 초수 증가용 타이머 private var timerRunnable: Runnable? = null private var secondsElapsed: Int = 0// 타이머 초 2. 녹음 시작 2-1. 녹음 버튼 클릭 // 녹음 시작 버튼 binding.r..
[Android/Kotlin] 음성 재생/일시정지
·
공부/안드로이드
음성 재생 val myUri: Uri = Uri.parse("링크") if (mediaPlayer == null) { // 일지정지한 적 없을 때 mediaPlayer = MediaPlayer().apply { setAudioStreamType(AudioManager.STREAM_MUSIC) setDataSource(context, myUri) prepare() start() // 음성 실행 완료 시 (다시 초기화) setOnCompletionListener { mediaPlayer?.reset() mediaPlayer = null } } } else if (isMediaPaused) { mediaPlayer?.start() isMediaPaused = false } 음성 일시정지 // 음성 일시정지 i..
[Android/Kotlin] 카카오 로그인/회원가입
·
공부/안드로이드
나는 이렇게 Access Token만 발급 받고 검증은 백엔드측에 넘겼다. 순서는 아래와 같다. 카카오 로그인/회원가입 요청한다. 카카오 측에서 이미 회원일 경우 로그인 처리, 회원이 아닐 경우 회원가입 처리 후 Access Token을 발급하여 전달한다. 받은 Access Token을 백엔드(서버)로 전달한다. 백엔드(서버)측이 전달받은 Access Token을 통해 다시 카카오를 통해서 검증을 하고 사용자 정보를 전달한다. 받은 정보를 jwt에 저장한다. 3~5번은 사람마다 다르게 작업하기 때문에 1~2번까지만 설명을 하겠다. 카카오 문서에 설정이 잘 나와있으니 보며 그대로 따라하면 된다. https://developers.kakao.com/docs/latest/ko/kakaologin/android..
[Android/Kotlin] Custom Dialog (팝업)
·
공부/안드로이드
이렇게 내가 원하는 형태로 다이얼로그를 변경하고 싶으면 custom dialog를 사용하면 된다. 1. 원하는 Dialog (팝업) xml을 layout에서 만든다. fragment_dialog_letter.xml 2. 클릭 시 보여질 Dialog (팝업) fragment를 만든다. DialogLetterFragment.kt import android.app.Dialog import android.content.Context import android.graphics.Color import android.graphics.drawable.ColorDrawable import android.view.LayoutInflater import android.view.Window import com.umc.andd..
[Android/Kotlin] 주간 달력 만들기
·
공부/안드로이드
한 주씩만 나오는 달력임 스와이프 기능 없음 팀 프로젝트에서 주간 달력이 있었다. 깃허브 등 라이브러리를 사용해봤지만 여러 문제점이 있었다. 리사이클러뷰 : 오늘 날짜(ex. 21일)이 먼저 출력되지 않고 항상 1일부터 보임 뷰페이저 : 예전날짜/다음날짜 스크롤에 한계가 있음 (무한 불러오기 안됨) 이전/다음 날짜 무한으로 불러오게 하면 기기가 감당을 못하고 다운됨 뷰페이저 사용했을 때가 가장 근접하게 성공했지만... 불러올 수 있는 날짜에 한계가 있어서.. (ex. 최대 n년 전, n년 후까지로 설정을 미리 해야 함) 위의 사진처럼 화살표 버튼을 추가하고 버튼 누를 때마다 저번주/다음주 날짜 불러오게 하였다. 아래 링크가 뷰페이저로 성공했던 라이브러리다. 주간 달력뿐만 아니라 펼쳤다가 접는 달력 등 매..
[Android/Kotlin] fragment에서 fragment로 이동
·
공부/안드로이드
나는 버튼 클릭 시 이동하게끔 하였다. 클릭하고자 하는 버튼 이름 (뷰바인딩) : binding.gotoPotBtn fragment가 있는 액티비티 MainActivity 이동하려는 프레지먼트 PotFragment 전체 코드 binding.gotoPotBtn.setOnClickListener { (context as MainActivity).supportFragmentManager.beginTransaction() .replace(R.id.main_frm, PotFragment()) .addToBackStack(null) .commitAllowingStateLoss() }
[Android/Kotlin] 안드로이드 spinner(스피너) 배경색 적용
·
공부/안드로이드
예시 펼치기 전 배경을 정한다. 나는 xml로 만들었다. 펼치기 전 배경색 img_primary_inline.xml 펼쳤을 때의 배경색 img_primary_outline.xml 이제 스피너가 사용된 xml에 적용하면 된다. 펼치기 전 android:background="@drawable/img_primary_inline" 펼친 후 android:popupBackground="@drawable/img_primary_outline" 전체 코드