Kotlin9 [Android] 버튼+ 홈 키 사용해서 비디오 pip 구현 _ kotlin 코틀린 ott앱을 사용하다 보면 PIP기능으로 자주 사용한다. 그래서 항상 사용하면서 어떻게 구현하는 것인지 궁금했다. 그래서 한번 해봤다. 내가 구현해 보길 원하는 방법은 재생되는 영상을 보다가 PIP를 사용할 수 있는 것이다. 1. 영상이 재생 중이어야 한다. 2-1. 티빙 앱처럼 버튼을 눌러서 pip모드로 진입한다. 2-2. 넷플릭스나 웨이브 앱처럼 홈키를 눌러서 pip모드로 진입한다. 이 세가지를 만족할 수 있도록 만들고 싶었다. 1. 영상 재생 링크를 타고 영상을 가지고 올 수 있는 방법도 있지만 저장되어 있는 비디오를 가져오는 방법을 선택했다. 그러려면 처음으로는 영상을 가져와야 했다. 픽사베이에서 무료 영상을 다운을 받았다. 이 영상을 보여줄 수 있는 비디오뷰를 xml에 넣어주는 것이 가장 먼저 해.. 안드로이드 앱 개발 공부/자꾸 까먹어서 적어두는 구현방법 2023. 10. 16. [안드로이드] 데이터바인딩 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] 코틀린 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. 도통 모르겠어서 기록하면서 공부하는 Jetpack Compose_ glance 코드 샘플 분석 후 적용하기까지 (2) 이번에는 https://github.com/android/user-interface-samples/tree/main/AppWidget/app/src/main/java/com/example/android/appwidget/glance/image 여기 코드를 분석해 볼 것이다! 이렇게 이미지를 사이즈에 따라 갱신하도록 구현한 것이다. 고정되지 않은 데이터를 보여주는 것이 아니기 때문에 내가 원하는 방법을 구현하는 것에 감이 올 수 도 있을 것 같아서 분석해 본다. 이거는 두 개의 파일이 있는데 ImageGlanceWidget.kt는 위젯 ui 전방에 관련된 코드이고, ImageWorker.kt는 이미지를 가져오는 코드로 추정된다. ImageGlanceWidget.kt에는 3덩어리로 이루어져 있다. 1. cl.. 안드로이드 앱 개발 공부/jetpack Compose 2023. 3. 21. [안드로이드 스튜디오] 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 다음