본문 바로가기

Android/안드로이드 스터디(Kotlin)61

[Android Studio, Kotiln] 화면의 가로, 세로 구하기 + 레이아웃 동적으로 바꾸기 사실 진짜 기본적인건데(ㅎㅎ) 한 n개월 지나면 또 딴 블로그 가서 찾고 있는 나를 보며 스스로 한심한 표정을 하면서 기록한다. 1. display 크기 구하기 검색하면 자주 보이는 windowManager.defaultDisplay 의 경우 api 30에서 deprecate가 되었다. 따라서, 버전 별로 나누어 두 가지 방식을 만들었다. (저는 함수에서 width만 구하기 위해 point.x만 썼는데, 높이가 필요하면 point.y로 하시면 됩니다.) private fun initWidth() { if (Build.VERSION.SDK_INT >= 30) { var display = requireContext().display var size = Point() display?.getRealSize(si.. 2021. 8. 10.
Kotlin] 51. CharSequence charSequence는 문자 클래스들이 기본적으로 가지는 인터페이스이다. (sequence라고 해서 진짜 상속하진 않음) 이 인터페이스는 하나의 프로퍼티와 두 개의 멤버함수를 가진다 length : 문자열의 길이를 int로 반환 get(index) : 해당 인덱스의 문자열 하나를 char로 반환 subSequence (startIndex, endIndex) : 첫 매개변수 인덱스와 마지막 매개변수 인덱스 사이(-1) 구간의 문자열을 뽑아 새 문자열로 반환 package charSequenceEx fun main() { var seq : CharSequence = "Hello" println("length : ${seq.length}") println("get : ${seq.get(1)}") printl.. 2020. 12. 24.
Kotlin] 50. 컬렉션 정렬 오라클에는 sort by라는 명령어로 값의 순서를 제어할 수 있다. 그리고 코틀린도 그렇게 컬렉션을 정렬해주는 함수가 있다(!) 값의 비교가 필요해서 반드시 comparable한 값들이 필요하다. sorted : 오름차순 정령 sortedDesending : 내림차순 정렬 package collectionSortEx fun main() { val list = listOf(43,76,28,19,22,68) println("sort : "+list.sorted()) println("sortDescending : "+list.sortedDescending()) } sort : [19, 22, 28, 43, 68, 76] sortDescending : [76, 68, 43, 28, 22, 19] 2020. 12. 24.
Kotlin] 49. sequence sequence도 list와 비슷한 기능을 하지만, list와 다른 점은 데이터를 필요할때마다 계산하기 때문에 데이터를 많이 다룰 수 있는 장점이 있다. 대신 데이터를 필요할때마다마다 계산해내기 때문에 데이터 전체의 길이를 구하는 것은 불가능하다. 따라서 size나 length같은 길이 관련 프로퍼티를 사용할 수 없다. 보다시피 length나 size는 없는 함수로 나온다. package sequenceEx fun main() { val seq : Sequence = sequenceOf(1,2,3) for(i in seq){ print("$i ") } } 결과 : 1 2 3 으로 반복자는 실행이 된다. 말 그대로 정말 저 seq가 호출될 바로 당시만 계산을 하는 것이다. 2020. 12. 23.
반응형