Android

    [Android] SVG 사용하기

    [Android] SVG 사용하기

    1. 먼저 PNG대신 SVG로 아이콘, 이미지를 저장한다! 2. 프로젝트 창에서 app -> new -> Vector Asset을 클릭한다 3. Asset Type 에서 Local file을 선택하고, next -> finish 버튼을 클릭한다. 4. drawable파일에서 vector파일로 잘 들어갔는지 확인한다! 다음 그림과 같이 잘 변환되었으면 거의 끝! 5. src에 해당 drawable 파일을 참조하면 끝~!! PNG로 했을 때 이미지 해상도가 깨졌던 문제가 있었는데, SVG로 해당 문제를 해결했다!!!

    [Android] PNG vs SVG 어떤 것이 정답일까?

    PNG 안드로이드 개발을 시작하면서 디자이너가 디자인한 아이콘, 이미지 등을 보통 PNG로 받아왔다. 하지만 해상도에 따라 이미지의 사이즈가 나의 의도와는 다르게 바뀌는 경우가 있었다.... 바로 src 에 PNG파일을 그대로 넣어서 사용했는데, 이렇게 하면 위와 같은 문제가 발생했고, 많이 찾아보다가 안드로이드에서 이를 방지하기 위해 drawable 폴더를 dpi값에 따라 나누었다고 한다. 따라서 디자이너가 다양한 안드로이드의 기기들의 크기, dpi, 해상도별 다른 사이즈로 PNG를 제공해야 한다는 단점이 존재했다.... 이거 때문에 여태까지 어떤 이미지는 내가 원하는 만큼 잘 나왔지만.. 어떤 이미지는 해상도가 많이 깨지는 문제가 발생했다 SVG png를 사용하지 않고, svg를 사용할 경우에는 디자..

    [Android] width, height 0dp로 설정하기

    [Android] width, height 0dp로 설정하기

    위의 그림과 같이 하나의 내용으로 너비가 꽉찬 경우라면 android:layout_width="match_parent" android:layout_height="wrap_content" 위와 같이 너비는 match로, height는 wrap으로 준 다음 android:layout_marginHorizontal="16dp" margin을 이용하여 양 옆에 간격을 두면 쉽게 가능하다. 하지만!! 이렇게 두 가지의 내용 EditText, Button 있는 경우라면 너비에 딱 알맞게 크기에 맞춰서 뷰가 완성이 되어야한다. 이 때 0dp로 설정하여 문제를 해결할 수 있다!! 먼저 오른쪽의 버튼 코드부터 살펴보자 android:layout_width="72dp" android:layout_height="wrap_c..

    [Android] ViewPager를 이용한 TabLayout

    [Android] ViewPager를 이용한 TabLayout

    클릭하여 프래그먼트를 이동시킬 수 있는 TabLayout을 ViewPager로 연결하여 슬라이드로 넘기는 형태로도 프래그먼트를 이동시킬 수 있다!! 앨범 프래그먼트에서 먼저 TabLayout의 자리와 ViewPager2의 자리를 먼저 잡아주자. 이렇게 위와 같은 형태로 자리를 잡아 주었으면 전 게시물 처럼 어댑터클래스를 만들어주어야한다. 앨범프래그먼트와 각각의 프래그먼트(수록곡, 상세정보, 영상)들을 연결해줄 AlbumVPAapter클래스를 생성해준다. class AlbumVPAdapter(fragment : Fragment) : FragmentStateAdapter(fragment) { override fun getItemCount(): Int { return 3 //3개의 프래그먼트가 있기 때문에 }..

    [Android] JetPack Navigation으로 Bottom Navigation 설정하기

    [Android] JetPack Navigation으로 Bottom Navigation 설정하기

    안드로이드를 공부하면서 간단한 화면 전환은 intent로 구현했었다. 하지만 레이아웃이 복잡해질수록 코드가 길어지며 가독성이 떨어지는 문제점을 확인할 수 있었다. 이 경우를 해결하기 위해 JetPack Navigation이 등장하였다. 네비게이션을 사용하면 한 눈에 볼 수 있는 화면들과, 프래그먼트의 이동을 더욱 쉽게 구현할 수 있는 장점이 있다. Navigation 설정하기 //네비게이션 def nav_version = '2.4.1' implementation "androidx.navigation:navigation-fragment-ktx:$nav_version" implementation "androidx.navigation:navigation-ui-ktx:$nav_version" build.grad..