728x90
반응형

안드로이드(Android) 27

특정 뷰에 애니메이션 적용하는 방법 그리고 적용 후 GONE 혹은 INVISIBLE이 안될 때

이번에는 지난번에 만들었던 fab(floatingButton)를 다루다가 알게 된 점을 정리하려고 한다. 이번 글은 floatingButton 외에도 애니메이션을 적용하는 경우에 사용할 수 있다. floatingButton의 경우 버튼을 누르면 다른 버튼들이 위로 나오거나 회전하는 등의 애니메이션이 적용되어 있는 경우가 많다. 우선 이러한 애니메이션을 만드는 경우는 다음과 같다. (visibility 적용하는 방법은 아래에 있다.) PART 1. 애니메이션 만들기 프로젝트 구조를 Android로 했을때 app > res 안에 anim 이라는 폴더를 만들고 원하는 애니메이션.xml 파일을 넣으면 된다. 현재 내가 쓰고 있는 애니메이션 종류는 여러 종류 중 'rotate(회전)' 과 scale(사이즈 조절)..

RecyclerView의 내용이 잘려서 안보이는 경우

RecyclerView를 지정하여 item으로 내용을 보여주다 보면 내용이 잘려서 안보이는 경우가 있다. 첫번째 사진처럼 마지막의 내용이 링크로 끝나야하는데 두번째 사진처럼 내용이 안보이는 경우가 있다. 이러한 증상이 발생하는 이유는 상위의 레이아웃이 ConstraintLayout이면서 RecyclerView의 height을 "wrap_content"로 지정하는 경우에 발생한다. height의 특정 값을 부여해주면 되지만 item 내용에 따라 height을 조절하고 싶기 때문에 다른 방법을 사용해야한다. 해결하는 방법은 다음과 같다. item을 보여줄 RecyclerView에 app:layout_constrainedHeight="true" app:layout_constrainedHeight="true" ..

ImageView나 특정 View에 그림자 커스텀하여 지정하는 방법 + 그림자를 지정하니 이미지의 사이즈가 이상해지는 경우

프로젝트를 진행 중 이미지에 그림자를 넣어야하는 경우가 생겼다. elevation을 통해서 그림자를 손쉽게 넣어줄 수 있지만 특정 방향의 그림자를 지정하기는 어렵다. 그럴때는 직접 xml 파일로 커스텀하여 그림자를 넣어줘야한다. 원하는 이름.xml로 drawable 폴더에 넣으면 된다. 위의 코드를 보면 얼핏보면 매우 복잡해 보인다. 그림자를 표현하기 위해 간략하게 일부만 가져오면 다음과 같다. 이 코드를 설명하자면

안드로이드의 fab 사이즈 조절하기(floatingButton 사이즈)

앱을 만들다보니 floatingButton을 만들어야할 경우가 있었다. 원하는 이미지를 넣어서 만들어야했는데 아래와 같이 사이즈가 안 맞는 경우가 생겼다. 맨 아래의 x표시의 floatingButton은 원하는 사이즈로 나왔으나 위에 나오는 버튼들은 모두 사이즈가 안 맞는 모습이다. 안쪽의 작은 원이 바깥쪽의 원과 사이즈가 같아야했다. 시도 1) xml의 fabSize를 변경 첫번째로 시도한 건 values의 dimens.xml을 만들어 fabSize를 수정하는 것이였다. 40dp 40dp res → values → dimens.xml 파일 dimens.xml에 사이즈를 지정하면 xml의 app:fabSize="normal" 을 통해 원하는 사이즈로 할 수 있다. 1-1) "design_fab_image..

activity!!(느낌표2개) 대신 requireActivity를 사용하는 이유

Glide 코드를 짜던 중 activity!!에서 빨간줄이 생겼다. 위의 코드를 간략하게 설명하자면 다음과 같다. Glide는 글라이드라는 라이브러로 안드로이드에서 이미지를 불러올 때 사용하는 라이브러리다. with()를 통해 괄호 속에서 Context를 가져온다. 위의 사진에서는 activity에서 가져오는 것이다. load()는 이미지를 로드하는 방식으로 url 방식임을 뜻한다. apply는 RequestOption 객체를 사용하여 추가 옵션을 설정하는 메소드이다. 다시 본론으로 돌아와서 with(activity!!)를 보자. 뒤에 느낌표가 2개가 붙은 이유는 컴파일러에게 activity는 null이 아니라고 알려주기 위해 지정하는 것이다. 만약 액티비티가 null이 발생할 경우 'NullPointe..

com.android.support 리팩토링하기(과거 라이브러리 리팩토링)

과거 영상을 보면서 작업하면 라이브러리가 옛날 버전인 경우가 있다. 예를 들면 com.android.support ~ 등이 있는데 아래 사진과 같이 빨간줄이 생긴다. 이는 Android가 9.0 (API 28)로 출시가 되며 AndroidX를 제공하기 때문에 더는 지원을 안하게 될 경우게 생기게 된다. Android developers의 공식 문서를 보면 아래와 같은 안내가 있다. 마지막 줄에 써있듯이 AndroidX로 이전하는 것을 고려한다고 안내해준다. 이는 충돌과 같은 문제점을 방지하기 위해 해야하는 작업이다. 막상 옛날 라이브러리만 알고 최신꺼는 모르겠는 경우에는 다음과 같은 방법이 있다. 안드로이드 스튜디오의 Refactor 탭의 Migrate to AndroidX를 사용하면 된다. 이는 예전 ..

뮤직 플레이어(MusicPlayer)_6 [Android_Kotlin]

참고 교재 : Joyce의 안드로이드 앱 프로그래밍 - 홍정아 전체 코드가 궁금하다면 아래 링크를 참고하시길 바랍니다. 원본 코드 : Joyce의 안드로이드 앱 프로그래밍 - 홍정아 현재 블로그 작성 코드 :Gnow 6. 버튼 초기화하기 [코드] package com.example.simplemusicplayer import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.view.View import android.widget.Button // View.OnClickListener : 사용자가 뷰를 클릭했을 때 어떤 행동을 할지 정할 수 있다. class MainActivity : AppCompatActiv..

뮤직 플레이어(MusicPlayer)_5 [Android_Kotlin]

참고 교재 : Joyce의 안드로이드 앱 프로그래밍 - 홍정아 전체 코드가 궁금하다면 아래 링크를 참고하시길 바랍니다. 원본 코드 : Joyce의 안드로이드 앱 프로그래밍 - 홍정아 현재 블로그 작성 코드 :Gnow 5. 서비스 클래스 구현하기 [com.example.simplemusicplayer] 을 우클릭하여 [New] → [Kotlin Class/File] 클릭 Class를 선택한채로 MusicPlayerService라는 이름의 클래스 파일 생성 우선 서비스 클래스의 뼈대를 만들겠습니다. [MusicPlayerService.kt] 의 뼈대 코드 package com.example.simplemusicplayer import android.app.Service import android.conten..

뮤직 플레이어(MusicPlayer)_4 [Android_Kotlin]

참고 교재 : Joyce의 안드로이드 앱 프로그래밍 - 홍정아 전체 코드가 궁금하다면 아래 링크를 참고하시길 바랍니다. 원본 코드 : Joyce의 안드로이드 앱 프로그래밍 - 홍정아 현재 블로그 작성 코드 :Gnow 4. 리소스 준비하기_MP3 뮤직 플레이어를 만들기 위해서는 mp3인 음악파일과 상태표시줄에 나타낼 아이콘을 다운 받아서 준비해야합니다. https://github.com/code-with-joyce/must_have_android GitHub - code-with-joyce/must_have_android: Must have 안드로이드의 모든 예제 소스들이 있습니다. Must have 안드로이드의 모든 예제 소스들이 있습니다. Contribute to code-with-joyce/must_..

뮤직 플레이어(MusicPlayer)_3 [Android_Kotlin]

참고 교재 : Joyce의 안드로이드 앱 프로그래밍 - 홍정아 전체 코드가 궁금하다면 아래 링크를 참고하시길 바랍니다. 원본 코드 : Joyce의 안드로이드 앱 프로그래밍 - 홍정아 현재 블로그 작성 코드 :Gnow 3. 레이아웃 구성하기 Design 탭의 Palette를 이용해 button 3개를 만들어 준 뒤 위에서 부터 재생, 일시정지, 재생중지 라는 이름으로 text와 id를 수정해 줍니다. 버튼 정렬_ 수직 정렬 버튼 3개를 ctrl 키를 누른 상태로 눌러 동시 선택합니다. 그 이후 우클릭을 하여 Chains → Create Vertical Chain 을 선택하여 수직 방향의 너비를 균등하게 분배합니다. 버튼 정렬_ 수평 정렬 다시 버튼 3개를 ctrl 키를 누른 상태로 눌러 동시 선택합니다. ..

728x90
반응형