본문 바로가기
리소스(Resources) - Display Metrics, Localization, 9-patch image Resource https://developer.android.com/guide/topics/resources/providing-resources?hl=ko 앱 리소스 개요 | Android 개발자 | Android Developers 앱 리소스 개요 리소스는 코드에서 사용하는 추가 파일과 정적인 콘텐츠입니다. 예를 들어 비트맵, 레이아웃 정의, 사용자 인터페이스 문자열, 애니메이션 지침 등이 있습니다. 이미지나 문자열 developer.android.com 기본 리소스(default resource) : 장치 구성과 상관 없이 기본적으로 사용되는 리소스 대체 리소스(alternative resource) : 특정한 장치 구성을 위하여 설계된 리소스 대체 리소스 제공 방법 기본 디렉터리 이름에 특정한 장.. 2021. 11. 30.
리사이클러뷰 (RecyclerView) - 3. Fragment, ViewModel, CardView ... 1. Data class 를 만들고 ViewModel에 데이터를 집어 넣었다. 2. ViewModel 을 가져오고 ViewHolder와 Adapter 구현 3. Adapter 장착 4. MainActivity 2021. 11. 30.
리사이클러뷰 (RecyclerView) - 2. ViewModel ViewModel을 사용해 데이터 저장 및 관리를 효율적으로 할 수 있다. ViewModel은 하나의 Activity와 연결되기 때문에 provider는 this, FruitViewModel에서 가져옴 fruitList를 가져와 My Adapter에 넣어줌 + Binding 방식 개선 Data binding 관련 모든 코드를 ViewHolder 클래스에서 처리하는게 바람직함(bind 함수) 2021. 11. 26.
리사이클러뷰 (RecyclerView) - 1 리사이클러뷰 RecyclerView * 예전에는 ListView 사용 BUT 요즘은 보다 유연하고 향상된 성능의 RecyclerView 사용 * Scrollable * 화면을 벗어나도 View를 버리지 않고 재활용(recycle) * ViewHolder를 이용해 한 Item의 Layout을 만들어 놓으면 재사용 가능 ListView와 다른 점 * LayoutManager a. LinearLayoutManager : 수평 또는 수직 방향 일렬로 배치 b. GridLayoutManager : 바둑판 모양 배치 c. staggeredLayoutManager : 크기가 다른 사각형 배치 * ViewHolder : View를 유지(hold) Apple, Apricot, ... 등의 Item들의 View를 hold.. 2021. 11. 26.
프래그먼트 (Fragment) - 3. 통신 MainActivity는 ToolbarFragment와 TextFragment 2개로 이루어져있다. ToolbarFragment안의 EditText 안에 텍스트를 입력, Seekbar로 텍스트의 크기를 조절하고 Change Text 버튼을 클릭하면 TextFragment의 TextView가 변한다. Fragment의 통신 Activity가 Fragment를 찾을 땐 findViewById 메소드로 Fragment의 id를 참조하면 되지만, 그 반대의 경우 Fragment끼리 통신할 수 없고 Fragment가 포함된 Activity(hosting)를 거쳐야 한다. 통신 방법 1. Fragment에서 Interface 선언 (안에 추상메소드 구현) 2. Activity(hosting)에서 상속. 구현은 이따.. 2021. 11. 25.
프래그먼트 (Fragment) - 2. 동적 교체 Fragment 동적 교체 0. Fragment를 삽입할 컨테이너 선언(FrameLayout) 1. FragmentManager 객체 (supportFragmentManager)를 생성한 다음, 이 객체의 beginTransaction 메소드를 호출 2. Activity 레이아웃에 Fragment 추가. 변경된 결과를 반영하려면 commit() 메소드 호출 * savedInstanceState != null -> 무언가 가지고 있으면 건드리지 마 (이번 작업에선 필요 없음) * addToBackStack -> Back 버튼을 누른 상황을 고려한 것. -> Back 버튼을 누르면 이전 fragment를 복원할 것인가? (null이면 back stack에 저장하지 않고 폐기) * beginTransactio.. 2021. 11. 25.