코틀린11 [Android] 버튼+ 홈 키 사용해서 비디오 pip 구현 _ kotlin 코틀린 ott앱을 사용하다 보면 PIP기능으로 자주 사용한다. 그래서 항상 사용하면서 어떻게 구현하는 것인지 궁금했다. 그래서 한번 해봤다. 내가 구현해 보길 원하는 방법은 재생되는 영상을 보다가 PIP를 사용할 수 있는 것이다. 1. 영상이 재생 중이어야 한다. 2-1. 티빙 앱처럼 버튼을 눌러서 pip모드로 진입한다. 2-2. 넷플릭스나 웨이브 앱처럼 홈키를 눌러서 pip모드로 진입한다. 이 세가지를 만족할 수 있도록 만들고 싶었다. 1. 영상 재생 링크를 타고 영상을 가지고 올 수 있는 방법도 있지만 저장되어 있는 비디오를 가져오는 방법을 선택했다. 그러려면 처음으로는 영상을 가져와야 했다. 픽사베이에서 무료 영상을 다운을 받았다. 이 영상을 보여줄 수 있는 비디오뷰를 xml에 넣어주는 것이 가장 먼저 해.. 안드로이드 앱 개발 공부/자꾸 까먹어서 적어두는 구현방법 2023. 10. 16. [Android] 타이머 구현 _ NumberPicker + Timer Kotlin 코틀린 완성 화면 완성한 기능의 화면 일부이다. 기본 타이머를 사용을 하면서 한 번쯤 타이머를 만들어 보고 싶었다. 타이머 기능 외에도 부가적인 기능을 추가하느라 조금 시간이 걸렸지만 기본적인 기능은 완성이 된 상태이다. 타이머 자체를 구현하는 것은 간단한 일이었다. 타이머를 위한 시간을 설정하는 부분에서는 numberPicker를 사용하였고 start 버튼을 누르면 텍스트뷰를 1초마다 변경해 주도록 하면 된다. 그다음 시분초의 값 모두가 0이 되면 타이머가 종료되도록 하였다. 이 글에서는 타이머를 시작하고 종료하는 부분만 언급한다. 개인적으로 진행중이 타이머 앱의 일부 기능을 작성. 1. 타이머 시간 설정 화면(xml) xml에 numberPicker와 시작 버튼을 추가해 준다. 데이터바인딩을 사용해 주기 위.. 안드로이드 앱 개발 공부/자꾸 까먹어서 적어두는 구현방법 2023. 10. 14. [안드로이드] 데이터바인딩 databinding 기본 코틀린 데이터바인딩을 사용하는 아주 기본적인 방법을 작성해보려고 한다. 버튼을 누르면 textView의 숫자가 증가하는 아주 간단한 작동을 데이터바인딩을 사용해서 구현할 것이다. 데이터바인딩을 사용하기 위해서는 첫 번째로 build.gradle(:app)에 데이터 바인딩을 사용하기 위한 설정을 해주어야 한다. 1. build.gradle(:app) android { ... buildFeatures { dataBinding true } } 위 코드를 추가해 주는 것이 가장 먼저 해야 할 일이다. 두 번째로는 데이터바인딩에 필요한 data class를 작성해 주는 일이다. 2. Data class data class Profile( var age : Int ) 원하는 이름의 데이터 클래스를 원하는 변수를 포함하여 .. 안드로이드 앱 개발 공부/자꾸 까먹어서 적어두는 구현방법 2023. 8. 17. [안드로이드] 기초적인 webView 구현하기 코틀린 kotlin 1. xml에 webView 추가 자신이 원하는 액티비티에 webview를 추가해 주었다. 2. Asset추가 그러면 아래처럼 asset폴더가 생성된다. 여기에 html파일을 추가해 준다. html을 간단하게 작성해 주었다. 그리고 해당 액티비티에서 binding.webView.loadUrl("file:///android_asset/test1.html") 이렇게 html파일을 가져와 주면 아래 결과를 얻을 수 있다. 전체 코드 class WebviewActivity : AppCompatActivity() { private val binding by lazy { ActivityWebviewBinding.inflate(layoutInflater) } override fun onCreate(savedInsta.. 카테고리 없음 2023. 8. 8. [안드로이드] intent를 사용한 Activity 전환 Kotlin 코틀린 intent는 컴포넌트를 호출하거나 데이터를 담아서 보내는 메시징 객체이다. 1. activity 호출 intent를 사용하여 activity 전환하는 방법 아주 간단한다. 우선, 기본 activity와 이동할 activity가 있다는 전재하에 아래 코드면 끝난다. val intent = Intent(this, theotherActivity::class.java) startActivity(intent) * 만약 이 과정에서 오류가 발생한다면 manifest에 activity가 선언되어 있지 않은지 확인해 보자. 2. 데이터 담아서 보내기 만약 기존 activity에서 다음 activity에 데이터를 보내고 싶다면 intent.putExtra("transResult",true) 이런 식으로 activity.. 안드로이드 앱 개발 공부/자꾸 까먹어서 적어두는 구현방법 2023. 8. 6. [Android] App widget 만들기 _ configureActivity + recyclerview 이전에 jetpack compose로 만든 앱에 위젯 추가 기능을 추가하려고 했는데, 아직 jetpack compose로는 이전처럼 모든 기능을 구현할 수 없다는 글을 보고 열심히 분석하며 만들어 보려고 했던 것을 포기했었다. 그래서 기존방법으로 다시 만들어 보았다. 이 앱은 jetpack compose를 한번 사용해 보고 싶어서 간단한 앱을 목표로 시작했고 플레이 스토어에 업로드까지 하게 되었다. 이 앱은 투두, 메모, 디데이를 하나의 앱에서 간단하게 관리할 수 있는 앱이다. 그래서 homescreen 위젯을 추가해서 볼 수 있었으면 했다. 내가 구현하려는 기능은 위젯을 추가하여 사용자가 저장해 두었던 디데이를 Room Db에서 가져와 RecyclerView를 통해 리스트로 보여주고 그 중 원하는 아이.. 안드로이드 앱 개발 공부/자꾸 까먹어서 적어두는 구현방법 2023. 4. 27. [Android] Kotlin 리사이클러뷰 스크롤 끝까지 내려갔을 때 안드로이드의 Paging은 많은 데이터를 한 번에 가져오지 않고 일정한 크기만큼 나눠서 가져오는 것이다. 이번에는 paging 라이브러리를 사용하는 것이 아니라, 많지 않은 데이터를 가져올 때 간단하게 페이징 처리하는 기능을 구현하는 것을 기록해보려 한다. 예전에는 웹페이지 처럼 다음 페이지 번호를 눌러서 넘어가도록 구현을 해본 적이 있었는데, 그 방법과 유사하지만 간단하다. 리사이클러뷰 어댑터나 레트로핏 데이터 가져오는 건 건너뛰고 핵심인 스크롤을 내려서 최하단에 내려갔을 때 이를 감지하고 원하는 동작을 할 수 있도록 하면 된다. binding.searchRecyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() { overrid.. 안드로이드 앱 개발 공부/자꾸 까먹어서 적어두는 구현방법 2023. 4. 21. [Android] 코틀린 kotlin 다이얼로그 만들기 기본 버튼을 눌렀을 때 다이얼로그가 뜨는 방법은 아래와 같다. edit()는 onclick 함수이다. fun edit(view: View) { val builder = AlertDialog.Builder(this) builder.setTitle("타이틀 입니다.") .setMessage("메세지 내용 입니다.") .setPositiveButton("확인", DialogInterface.OnClickListener { dialog, id -> }) .setNegativeButton("취소", DialogInterface.OnClickListener { dialog, id -> }) builder.show() } 이렇게 하면 아래와 같은 결과를 얻는다. 버튼을 클릭하면 DialogInterface안에 원하는.. 카테고리 없음 2023. 4. 3. [Android] 코틀린Kotlin 현재 날짜 가져오기 LocalDateTime 혹은 LocalDate val localDateTime: LocalDateTime = LocalDateTime.now() val localDate: LocalDate = LocalDate.now() Log.d("localDateTime",localDateTime.toString()) Log.d("localDate",localDate.toString()) 이렇게 하면 로그에 아래처럼 찍힌다. localDateTime 2023-04-03T 05:08:43.775 localDate 2023-04-03 LocalDateTime을 가지고 이렇게 시간과 날짜를 각각 가져올 수도 있다. Log.d("localDateTime",localDateTime.toLocalDate().toString(.. 안드로이드 앱 개발 공부/자꾸 까먹어서 적어두는 구현방법 2023. 4. 3. [Android] kotlin 뷰바인딩 ViewBinding 1. build gradle (Module:app)에 추가하기 android { ... viewBinding { enabled true } } 2. 사용하려는 뷰에서 접근 두 가지 방법이 있다. 첫 번째는 class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val binding = ActivityMainBinding.inflate(layoutInflater); setContentView(binding.root) } } 두 번째는 class MainActivity : AppCompatActivity() { val binding.. 안드로이드 앱 개발 공부/자꾸 까먹어서 적어두는 구현방법 2023. 4. 3. [안드로이드 스튜디오] Retrofit + 코루틴 +fragment 리사이클러뷰 kotlin 영화 정보를 가지고 올 수 있는 영화진흥위원회의 open Api를 활용해서 리사이클러뷰를 사용해서 일별 박스오피스 순위를 코루틴과 retrofit으로 가져와 보여주려고 한다. 이것을 구현하기 위해 열심히 공부도 하고 정말 많은 검색을 해가면서 구현했지만, 계속된 오류로 며칠 동안 해결하지 못했었다. 내가 구현하려는 api의 형태도 달랐고, 구현하려는 방식도 달라서 오류의 원인을 찾기 힘들었다. 그래서 이 글이 누군가에게 조금이라도 도움이 되었으면 좋겠다. 1.build.gradle(Model:app) 에 추가 //retrofit implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:conve.. 안드로이드 앱 개발 공부/자꾸 까먹어서 적어두는 구현방법 2023. 2. 8. 이전 1 다음