반응형

안드로이드 52

[Android] Number Picker

이번 글에서는 안드로이드에서 숫자를 고를 때 활용하면 좋은 Number Picker를 사용해보자. XML MainActivity class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) binding.pickerYear.apply { maxValue = Calendar.getInstance().g..

안드로이드 BottomNavigationView

이번 글에서는 안드로이드 BottomNavigationView를 사용해서 화면을 전환하는 법에 대해 알아보자. Menu 가장 먼저 BottomNavigationView에 들어갈 메뉴들을 정의해보도록 하자. res에서 menu폴더를 생성해준 뒤, 해당 폴더 안에 xml파일을 작성한다. 이 글에선 3개의 아이템을 가진 menu파일을 작성해보았다. id를 통해서 해당 메뉴에 접근할 수 있고, title과 icon은 BottomNavigationView에서 보이는 제목과 아이콘을 지정할 수 있다. MainActivity.xml 다음으로 MainActivity를 작성해보도록 할텐데, 이 글에선 BottomNavigationView와 화면(Fragment)이 들어갈 container를 가지고 있는 뷰를 만들어보도록..

안드로이드 데이터베이스(Database) Room 사용하기

이번 글에선 안드로이드 로컬 DB인 Room을 사용하는 방법에 대해서 알아보도록 하자. ROOM 안드로이드를 사용하다보면 데이터를 로컬에 저장해서 사용해야 할 때가 있다. 이런 때를 위해서 안드로이드에서는 로컬에 데이터를 저장할 수 있는 DB를 지원하고 있다. 예전에는 SQLite를 사용했었는데, 최근에는 안드로이드 문서에서도 Room사용을 적극 권장하고 있다. Room을 사용하기 위해선 기본적으로 세 가지가 필요한데, Entity Dao Database 위 세 가지를 각각 정의해주어야 Room사용이 가능하다. 일단 Room을 사용하기 위해서 dependencies를 추가해주어야 하는데, 안드로이드 스튜디오 Gradle에서 아래 코드를 넣어주자 def room_version = "2.5.0" implem..

안드로이드 리사이클러뷰(RecyclerView) 사용하기

영어 한국어 일본어 중국어 (간체) 중국어 (번체) 베트남어 인도네시아어 태국어 독일어 러시아어 스페인어 이탈리아어 프강스어 복사하기 이 확장을 지원합니다 ㅇ 이번 글에서는 RecyclerView를 사용하는 방법에 대해서 알아보도록 하자. RecyclerView 안드로이드에서 어떤 항목들의 리스트를 보여줄 때에는 ListVIew와 RecyclerView를 사용할 수 있다. 둘의 차이점에 대해서는 아래 링크에서 확인해 볼 수 있다. https://angangmoddi.tistory.com/287 리스트뷰(List View) vs 리사이클러뷰(Recycler View) 안드로이드에서 목록을 표시하는 View로는 리스트뷰와 리사이클러뷰 두 가지가 있다. 이 글에선 두 View가 어떻게 다른지에 대해서 알아보도..

안드로이드 RecyclerView 아이템 줌하기(SanpHelper, ScrollListener)

이번 글에서는 RecyclerVIew에서 현재 화면 가운데에 있는 아이템을 강조하는 법에 대해서 알아보도록 하자. 영어 한국어 일본어 중국어 (간체) 중국어 (번체) 베트남어 인도네시아어 태국어 독일어 러시아어 스페인어 이탈리아어 프강스어 복사하기 이 확장을 지원합니다 Adapter, ViewHolder, itemXml 일단 먼저 RecyclerView를 표시하기 위해서 Adapter와 ViewHolder, itemXml을 정의해주도록 하자. class RecyclerAdapter( private val itemList: ArrayList, private val onClickItem: (String) -> Unit ): Adapter() { override fun onCreateViewHolder(par..

안드로이드 Circle Progress (로딩 애니메이션) 만들기

영어 한국어 일본어 중국어 (간체) 중국어 (번체) 베트남어 인도네시아어 태국어 독일어 러시아어 스페인어 이탈리아어 프강스어 복사하기 이 확장을 지원합니안드로이드 안드로이드에서 네트워크 통신을 하거나 데이터를 처리하는 동안 사용자에게 아무 화면도 보여주지 않으면 혼동을 줄 수 있다. 때문에 이 글에서는 위와 같은 상황에 사용할 수 있는 간단한 애니메이션을 만들어보도록 하자. Drawable 작성 로딩 애니메이션은 gif, lottie등을 활용할 수도 있지만 이번 글에선 rotate drawable을 사용해서 만들어보도록 하자. rotate로 이미지를 회전하도록 해주고 gradient값을 주어서 자연스럽게 두 가지 색이 섞이도록 해보자. Dialog Fragment 그 다음으로 앱의 여러 군데에서 사용하기..

안드로이드 뒤로 가기 두 번 눌러서 종료 (onBackPressed, onBackPressedDispater)

영어 한국어 일본어 중국어 (간체) 중국어 (번체) 베트남어 인도네시아어 태국어 독일어 러시아어 스페인어 이탈리아어 프강스어 복사하기 이 확장을 지원합니다 이번 글에선 기기의 뒤로 가기 버튼을 두 번 눌러서 화면을 종료하는 방법에 대해서 알아보도록 하자. OnBackPressed 여기서 활용할 함수는 onBackPressed함수인데, 기기의 뒤로가기 버튼을 누르면 호출된다. private var backPressedTime: Long = 0L override fun onBackPressed() { if (System.currentTimeMillis() - backPressedTime

안드로이드 ViewPager2 + TabLayout를 사용한 스와이프 메뉴

이번 글에서는 ViewPager2와 TabLayout을 사용하여 스와이프 가능한 탭 메뉴를 만들어보도록 하자. XML파일 작성 먼저 viewpager와 tabLayout이 있는 메인 액티비티의 XML파일을 작성해주도록 하자. 간단하게 viewpager와 tabLayout만 있는 XML을 작성해보았다. Adapter 다음으로 viewpager에 연결할 adapter클래스를 새로 작성한다. class ViewPagerAdapter( private val fragmentList: ArrayList, container: AppCompatActivity ): FragmentStateAdapter(container.supportFragmentManager, container.lifecycle) { override ..

retrofit을 사용한 안드로이드와 Node.js간 통신

안드로이드에서 retrofit을 사용해서 Node.js와 통신을 해보자. 안드로이드에서 서버와 통신하는 방법은 retrofit과 volley를 사용하는 방법의 두 가지를 꼽을 수 있다. 기존의 httpconnection은 자유도는 높지만 직접 구현해야 하는 것들이 많아 난이도가 높다는 단점이 있다. 그에 비해 위의 둘은 구현하기가 매우 쉽기 때문에 사용하기 편리하다. 또한 둘 중에서는 retrofit이 속도 면에서 더 빠르다는 장점이 있다고 한다. square.github.io/retrofit/ Retrofit A type-safe HTTP client for Android and Java square.github.io retrofit API문서는 위의 주소를 참고하자. implementation 'co..

반응형