분류 전체보기126 [Android] #5 SearchView를 통한 검색창 구현 #2 검색어를 입력했을 때, 연관 검색어를 받아와야 합니다. 다음은 연관 검색어 데이터를 받아오는 쿼리입니다. https://suggestqueries-clients6.youtube.com/complete/search?client=youtube-reduced&hl=en&gs_ri=youtube-reduced&ds=yt&cp=3&gs_id=100&q=[원하는 검색어]&xhr=t&xssi=t&gl=usBash json 형식으로 페이지에 띄워지는 보통의 형식과는 다르게, txt 파일로 다운로드가 됩니다. Retrofit2를 이용하여 해당 데이터를 가져와야 합니다. 먼저 연관검색어를 위한 Retrofit 객체를 정의해주었습니다. object RetrofitSuggestionKeyword { var instance: .. 2023. 3. 20. [Android] #4 searchView를 통한 검색창 구현 #1 관련 자료가 많이 없어서 구현이 힘들었습니다. 이 코드 저 코드 다 써보며 무식하게 사용법을 익혔던 것 같습니다. 덕분에 searchView에 대한 여러 매소드와 속성들을 이해할 수 있었습니다. 현재는 컴포넌트 구조를 수정하여, toolBar를 각각 프레그먼트에 정의해두었지만, 이전에 activity에서 정의했던 기억을 되살려서 글을 적겠습니다. 먼저 레이아웃 파일에 toolBar를 만듭니다. 자식들인 ImageView는 앱의 로고, TextView는 앱의 타이틀 입니다. 또한 collapseIcon 인 뒤로가기 버튼을 설정해주었습니다. toolBar와 연결해줄 menu.xml 파일을 생성해 줍니다. toolBar를 적용하는 방법은 이전과 같습니다. theme.xml에서 기본 테마를 NoActionBar.. 2023. 3. 20. [Android] #3 recyclerView 및 scrollView 스크롤 시 motionLayout이 작동하는 이슈 + visiblity 설정 fragment_player 안에는 관련 영상들을 띄워주는 recyclerView가 존재합니다. 원래는 동영상을 재생해주는 playerView를 밑으로 드래그 할 경우에만 motionLayout이 작동되어야 하지만, 리사이클러뷰의 스크롤을 밑으로 내렸다가, 세게 올리는 경우에도 motionLayout이 작동되는 이슈가 있었습니다. motionScene 파일에서 trigger를 설정해주는 onSwipe 태그에는 "nestScrollFlags" 라는 속성이 있습니다. 이를 "disableScroll"로 설정해주어 해결할 수 있었습니다. 추가로, motionLayout안의 뷰들은 visible 상태를 변경해주기 전에 scene 파일에서 설정을 해주어야 합니다. ex) 예시로, 데이터를 받아오기 전에는 prog.. 2023. 3. 20. [Android] #2 toolBar의 아이콘이 밀리는 이슈 해결(motionLayout) 정확히 말하자면, toolBar의 아이콘들이 오른쪽으로 밀리는 이슈였습니다. 저의 툴바에는 아이템이 두 개가 존재하는데, 서치 아이콘이 밀려 겹쳐지는 현상이 발생하였습니다. 한창 삽질했을 때는 눈치채지 못했지만, 연관검색어를 나타내주는 리사이클러뷰 또한 아이템을 업데이트 해주는데 딜레이가 걸리는 것을 볼 수 있습니다. searchView를 처음 접해보고, 공부해보는 단계였던 때라, searchView 관련 이슈인 줄 알고 많은 시간을 날렸었습니다. 원인은 motionLayout에 있었습니다. motionScene에서 start, end 두 상태의 변화를 설명해주는 Transition 태그에는 requestLayout 호출에 관한 속성이 있습니다. Transition 에서 해당 속성을 추가하여 honorR.. 2023. 3. 12. [Android] #1 유튜브 형식의 동영상 플레이어 만들기(MotionLayout) 어플리케이션의 음원 소스 기반이 유튜브이므로, 최대한 유튜브의 디자인을 따라하고 싶었습니다. 드래그, 또는 터치를 통해 동영상 플레이어의 창을 내리고 올릴 수 있어야 합니다. // 관계가 없는 코드이므로 접어놓겠습니다. 액티비티 전체를 motionLayout으로 감싸줘야 합니다. 동영상 플레이어 프레그먼트를 넣을 frameLayout, 액티비티 밑에 위치하는 bottom NavigationView가 존재합니다. motionLayout은 레이아웃의 모든 모션 설명을 포함하는 MotionScene xml 파일을 필요로 합니다. xml에 main_scene.xml 파일을 만들어 주었습니다. // 동영상 플레이어가 최소화된 상태 "start" ... // 동영상 플레이어가 최대화가 된 상태 "end" ... 동.. 2023. 3. 11. [Android] 유튜브 음정(키, 피치) 높낮이 조절 모바일 어플리케이션 음원 파일을 다운로드 하지 않고, 실시간으로 음정을 조절할 수 있는 어플리케이션 입니다.유튜브 내 영상을 검색할 수 있으며, 백그라운드 재생을 지원합니다. https://github.com/joh9911/Transpose/blob/main/README_KO.md Transpose/README_KO.md at main · joh9911/TransposeAd-free Android YouTube client with real-time audio effects. Stream videos, apply effects instantly, and enjoy background playback - all without ads or downloads. - joh9911/Transposegithub.com 앱의 주요.. 2023. 1. 27. [Kotlin] 캐릭터 애니메이션 구현하기 처음에 넣고싶었던 애니메이션 기능은 방향키 조작이였다. 키우기 게임에 직원들을 고용하는 시스템이므로, 직원들을 고용하면 화면 곳곳에 고정시키고,내 캐릭터는 방향키를 통해 움직이며, 직원들과 부딫히면 캐릭터 위에 메시지를 띄우는 형식이였다. 진짜 너무 재밌을 것 같았고 게임에 대한 코딩을 시작하기도 전에 유튜브 강의 영상을 뒤져보았다. 해당 강의 영상 링크이다.https://www.youtube.com/watch?v=5iFOYfpKOfs&list=PL2EfDMM6n_LYJdzaOQ5jZZ3Dj5L4tbAuM&index=3 그러나 치명적인 문제가 있었는데.. 단 하나의 액티비티만 사용이 가능하다고 했다.처음에 이 사실을 부정하고 여러 시도를 해봤지만 실패했고, 그렇게 기존의 설계는 무너져버렸다.. 2022. 11. 2. [Kotlin] 홈 버튼 눌렀을 때 배경 음악 일시 정지 시키기 게임을 하다 홈 버튼을 누르는 순간 bgm은 멈춰야 한다. 생명주기 특성상 액티비티를 새로 띄우는 경우와 홈 버튼을 눌렀을 때의 경우 모두 onStop이 호출되었고, 이 두 경우를 구분할 수 있는 방법이 필요했다. 구글에 찾아보니 onUserLeaveHit 매소드를 사용하면 된다 했지만, 액티비티를 새로 띄울 때도 해당 매소드가 호출됐었다.. 검색 키워드가 참으로 애매했지만, 방법을 찾을 수 있었는데 바로 application 클래스를 사용하는 것이다. Application() 한 어플리케이션 내에서 공동으로 변수나 매소드를 사용할 수 있게 해주는 공유 클래스이다. // 홈버튼 눌러서 onStop 상태가 된 건지, 다른 액티비티가 실행되어 onStop 상태가 된 건지 구별하기 위한 공용 클래스 class.. 2022. 11. 2. 이전 1 ··· 12 13 14 15 16 다음