[내일배움캠프 앱트랙] 캠프 2주차 - 12/1(금)

0
post-thumbnail

[내일배움캠프 앱트랙] 캠프 2주차 - 12/1(금)

📝TIL

Kotlin CodeKata

Kotlin 문법 기초

Android 개발 종합반

  • 2주차
    • 2-2 로또번호 생성기(기능 구현)⭕
  • number_circle.xml
  • 로또 숫자를 나타내는 TextView가 backgound로 사용하는 drawable
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <solid
        android:color="@color/number_color1"/>
    <size
        android:width="40dp"
        android:height="40dp"/>
</shape>
  • MainActivity.kt
  • 로또 숫자가 해당하는 범위에 따라 drawable의 색을 바꾸는 코드
  • TextView.background로 drawable 접근 -> GradientDrawable로 형변횐 -> setColor(색 ID)로 색 바꾸기
 private fun updateUI(){
        for(i in 0 until pickedNumbers.size){
            val num = pickedNumbers[i]
            val tv = numberTextViewArray[i]
            //화면에 나타내기
            tv.text = num.toString()
            tv.isGone = false
            //배경 색 지정하기
            var circleColorId = when(num) {
                    in 0..10 -> R.color.number_color1
                    in 11..20 -> R.color.number_color2
                    in 21..30 -> R.color.number_color3
                    in 31..40 -> R.color.number_color4
                    else -> R.color.number_color5
                }
           var shapeDrawable: GradientDrawable = tv.background as GradientDrawable
           shapeDrawable.setColor(resources.getColor(circleColorId))
           tv.background = shapeDrawable
        }
    }
  • MainActivity.kt
  • (1..45).filter{it !in pickedNumbers}: 1~45 정수들 중 pickedNumbers에 포함되지 않은 수들
  • 무작위로 섞은 다음(shuffled()), 남은 개수만큼 수 가져오기(take(6 - pickedNumbers.size))
     private fun generatedNumList(){
        val numbers = (1..45).filter{it !in pickedNumbers}
            .shuffled().take(6 - pickedNumbers.size)
        pickedNumbers += numbers
    }
  • 3주차
    • 3-1 MBTI 테스트(메인화면)⭕
    • 3-2 MBTI 테스트(질문지 화면)🔺

📝코멘트

profile
Be able to be vulnerable, in search of truth

0개의 댓글