wanna be dev 🧑‍💻

Cool 하고 Sick한 개발자가 되고 싶은 uzun입니다

A.K.A. Kick-snare, hyjhyj0901, h_uz99 solvedac-logo

Android/Challenge

패스트캠퍼스 챌린지 18일차

Kick_snare 2022. 2. 10. 11:07
728x90

18일차

생성일: 2022년 2월 10일 오전 10:29

30개 프로젝트로 배우는 Android 앱 개발 with Kotlin 초격차 패키지 Online

강의 목표


  • 프로젝트를 따라해보며 앱개발에 필요한 기술을 학습할 수 있습니다.
  • 프로젝트를 따라해보며 앱개발에 필요한 기술을 학습할 수 있습니다.
  • 앱 개발시 원하는 기능을 구현하기 위해 어떤 기술이 필요한 지 알 수 있습니다.
  • 디자인 아키텍처 패턴, 비동기 처리 등 효율적인 앱 개발 방법을 익힐 수 있습니다.

목차 02 Basic - Ch02. 로또 번호 추첨기


  • 인트로(완성앱&구현기능소개)
  • Collection 개념 소개
  • 로또 번호 추첨 알고리즘 생각해보기
  • Constraintlayout 이용하여 기본 UI 그리기(1)
  • Constraintlayout 이용하여 기본 UI 그리기(2)
  • 기능 구현하기(1)
  • 기능 구현하기(2)
  • Resource를 이용하여 꾸며보기
  • 아웃트로(정리)

Resource를 이용하여 꾸며보기

  • textView 에 shapeDrawable 을 주어 디자인을 추가
  • res/drawable 에서 리소스 파일을 new 하여 추가해준다
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <solid android:color="#5FB5DB"/>
    <size
        android:width="44dp"
        android:height="44dp"/>
</shape>
  • shape 태그를 사용하여 도형을 그린다
  • solid와 size 태그로 색상과 크기를 지정한다
  • 번호 범위에 따라 색깔을 달리 할 것임으로 색상만 다르게 여러개 추가한다
  • 그 후 View 파트에서 아래의 코드와 같이 추가할 수 있다
android:background="@drawable/circle_gray"
android:gravity="center"
android:textColor="@color/white"

  • 지금은 6개의 숫자 모두 1과 gray색으로 초기화 되어있지만 숫자 범위에 따라 컨트롤부에서 수정할 것이다
private fun setNumberBackground(number:Int, textView: TextView) {
    when(number) {
        in 1..10 -> textView.background = ContextCompat.getDrawable(this, R.drawable.circle_yellow)
        in 11..20 -> textView.background = ContextCompat.getDrawable(this, R.drawable.circle_blue)
        in 21..30 -> textView.background = ContextCompat.getDrawable(this, R.drawable.circle_red)
        in 31..40 -> textView.background = ContextCompat.getDrawable(this, R.drawable.circle_gray)
        else -> textView.background = ContextCompat.getDrawable(this, R.drawable.circle_green)
    }
}
  • ContextCompat.getDrawable() 을 이용하여 리소스 drawable 파일에 접근가능하다
  • add 할때와 자동생성할때 모두 필요함으로 함수화 하여 사용한다

최종 화면

아웃트로(정리)

  • Layout 그리기
    • ConstraintLayout을 사용
      • 제약 조건들을 통해 레이아웃을 배치하는 방법
      • 예) start를 start에 붙인다 등
    • NumberPicker 를 사용
      • min, max 값 설정
    • text로 접근
  • OnclickListener
  • ShapeDrawable
    • drawable 리소스를 만들어 적용
  • 코틀린 문법
    • apply
      • numberList를 초기화 할 때 사용
      • 자신을 this로 접근 (적용)
    • when
      • 숫자의 background 를 설정할 때 사용
      • in 이라는 범위 연산자 사용
      • expresssion 사용
    • Collection
      • set : 중복되지 않는 자료구조
      • list : 순차적으로 쌓이는 자료구조

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

수강인증샷

링크

https://bit.ly/37BpXiC

728x90