목록분류 전체보기 (248)
와챠의 우당탕탕 코딩 일기장

아래 UI는 "동네 고영희"앱의 UI입니다^______^ 귀엽죠 해당 UI의 Tab 부분에 선택이 안 된 tab 아래 underline이 있는 걸 확인할 수 있다!! 만들어봅시다 res>drawable>tab_underline.xml 이 xml은 뒤에 일단 밑줄의 색이 될 사각형을 깔아놓고 그 위에 탭 레이아웃의 배경색인 흰 색 사각형을 바닥에서 1.5dp만큼 올려깐 것이다. 이 xml을 TabLayout에 요로코롬 달아주면 된다.ㅎ app:tabBackground="@drawable/tab_underline" 참고 https://stackoverflow.com/questions/36367114/set-color-to-unselected-tab-indicator-in-tab-layout

문제 히스토그램은 직사각형 여러 개가 아래쪽으로 정렬되어 있는 도형이다. 각 직사각형은 같은 너비를 가지고 있지만, 높이는 서로 다를 수도 있다. 예를 들어, 왼쪽 그림은 높이가 2, 1, 4, 5, 1, 3, 3이고 너비가 1인 직사각형으로 이루어진 히스토그램이다. 히스토그램에서 가장 넓이가 큰 직사각형을 구하는 프로그램을 작성하시오. 입력 입력은 테스트 케이스 여러 개로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, 직사각형의 수 n이 가장 처음으로 주어진다. (1 ≤ n ≤ 100,000) 그 다음 n개의 정수 h1, ..., hn (0 ≤ hi ≤ 1,000,000,000)가 주어진다. 이 숫자들은 히스토그램에 있는 직사각형의 높이이며, 왼쪽부터 오른쪽까지 순서대로 주어진다. 모든 ..

유튜브에서 Kotlin 강좌(Code with Joyce)를 보고 있는데 마지막 강의에서 Navigation에 대한 내용을 다루시길래 재밌어 보여서 나도 같이 만들어보고자 한다. Navigation 궁금했음!! 더 잘 다르고 싶었음! https://developer.android.com/guide/navigation/navigation-getting-started?hl=ko 탐색 구성요소 시작하기 | Android 개발자 | Android Developers 탐색 구성요소 시작하기 이 주제는 탐색 구성요소를 설정하고 사용하는 방법을 설명합니다. 탐색 구성요소의 대략적인 개요는 탐색 개요를 참고하세요. 환경 설정참고: 탐색 구성요소는 Android developer.android.com 1. depende..

아래 화면은 "동네 고영희" 앱 UI입니다^____^ 결과 화면 구현한 기능 갤러리에서 사진 선택(사진 선택 시 최대 선택 개수 지정) 사진 재선택 시 이전에 선택한 사진 보이기 갤러리에서 사진 선택 시 확대된 사진 보이기 선택된 사진 개수 실시간으로 보이기 1. 라이브러리 gradle에 추가 사진 개수 제한을 위한 fishbun과 이미지 로드를 위한 gilde 라이브러리를 다운받아준다. 최신 버전 확인: https://github.com/sangcomz/FishBun dependencies { implementation 'io.github.sangcomz:fishbun:1.0.0-beta01' // limit photo count implementation 'com.github.bumptech.glid..

아래 화면은 "동네 고영희" 앱 UI 입니다! 결과 화면 기존 다이얼로그를 사용해도 되겠지만 폰트 변경 과정이 번거롭고/dp 간격 조정을 자유롭게 하기 위해 커스텀하기로 결정!! 방법: CustomDialog.kt 생성 custom_dialog.xml 생성 Dialog 띄우기 1. CustomDialog.kt 생성 import android.graphics.Color import android.graphics.drawable.ColorDrawable import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app...

아래 화면은 '동네 고영희' 앱 UI입니다!!! 결과 화면 스피너(TextView임) 클릭하면 아래에서 다이얼로그(BottomSheetDialog)가 나옴 아이템 선택 시 선택한 아이템으로 스피너(TextView) text 변경 아래로 드래그 시 다이얼로그 내려감(기본 기능임) 클릭 효과 적용 만들어보자~~~ 요약: spinner 처럼 생긴 TextView 만들기 res>drawable>spinner_bottom.xml 생성:레이아웃 맨 위의 오른쪽, 왼쪽 모서리를 둥글게 하기 위함 res>layout>spinner_custom_layout.xml 생성: BottomSheetDialog Layout 만들기 res>values>themes>themes.xml에 아래 style 추가: 뒷배경 투명 처리 1번..

아래 화면은 '동네 고영희' 앱 UI입니다!!! 결과 화면 스피너 밑줄 만들기: 아래 코드를 xml에서 spinner에 추가해주면 됨 style="@style/Widget.AppCompat.Spinner.Underlined" 스피너에 힌트 만들기: 1, 배열의 맨 마지막에 hint를 넣고 2, 스피너 아이템의 갯수에서 -1을 리턴하게 한 후에 3, hint를 스피너의 초기값으로 지정해주면 된다. 그러면 위의 사진과 같이 마지막 아이템이 hint처럼 보이게 된다. 1, res>values>spinner_array.xml에 스피너 배열 추가! 이때 hint도 배열의 맨 마지막에 넣어주어야 한다. 1살 미만 2살 3살 4살 5살 이상 모름 고양이 나이 선택 2, 스피너의 아이템 갯수가 -1이 되도록 설정한다...

let with run apply also 0. 기본 기본적인 객체 생성 방법은 아래와 같다. // 사람 데이터 클래스 data class Person(var name: String, var age: Int) // 객체 생성 val person = Person("", 0) person.name = "minWachya" person.age = 23 // 출력 println("$person")// Person(name=minWachya, age=23) 1. let fun T.let(block: (T) -> R): R 자신(it)을 받아서 어떤 값을 반환함. let 블럭 안에는 non-null 값만 가능 // 객체 생성 val person = Person("", 0) // 경우 1: 자기 자신 반환 val r..