Android resource kotlin코드로 사용하기

undefined·2023년 1월 23일
0

삽질로그

목록 보기
2/7

오늘 작업하다가 새롭게 만난 문제들(?) 중 리소스 관련된 내용을 정리해봐야겠다.

문제 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로 접근해서 사용하면 된다.

profile
이것저것 하고 싶은 게 많은 병아리 개발자

0개의 댓글