오늘 작업하다가 새롭게 만난 문제들(?) 중 리소스 관련된 내용을 정리해봐야겠다.
문제 1:
정해진 색깔 항목들을 순서대로 돌리면서 뷰에 적용해주세요.
이건 어떻게 하는거지?
매번 리소스 관련해서 동적으로 사용하는 부분은 어떻게 해야할 지 바로 떠오르지 않는다. 구선생님 만세
구글링해서 방법을 찾았는데 처음 보는 내용이기도 하고 종종 쓸 일이 있을 것 같아서 코드를 가져왔다.
해결 :
colors.xml
<color name="pastel_green" type="color">#ff84bb9c</color>
<color name="pastel_yellow" type="color">#ffe5ba60</color>
<color name="pastel_purple" type="color">#ffcdcdcd</color>
<color name="pastel_navy" type="color">#ff86aec3</color>
<color name="pastel_violet" type="color">#ffc995a8</color>
<color name="pastel_jade" type="color">#ff8bba7b</color>
<array name="itemBackgroundColor">
<item>@color/pastel_green</item>
<item>@color/pastel_yellow</item>
<item>@color/pastel_purple</item>
<item>@color/pastel_navy</item>
<item>@color/pastel_violet</item>
<item>@color/pastel_jade</item>
</array>
color에 요청한 색상을 선언했다.
그리고 그 색상들을 하나의 배열로 묶어준다
이거 구글링해서 나온거 그대로 썼다가 < color xxxxx > 부분이 로 나온곳도 있었고 < array xxx > 가 < integer-array xxx >로 나온곳도 있었는데 나는 인식이 안돼서 애먹었었다.. 그래서 찾다가 위 방식으로 했더니 해결됨!
그리고 kotlin코드 단에서
val androidColors: IntArray =
binding.root.context.resources.getIntArray(R.array.itemBackgroundColor)
val randomAndroidColor = androidColors[position % androidColors.size]
이렇게 R.array.itemBackgroundColor로 접근해서 사용하면 된다.