Custom view 등을 만들때, 유의해야 할 view life cycle 기본적으로, 내 크기 측정(measure) > 내 위치 측정(layout) > 그림(draw) 순으로 흘러감 measure() , onMeasure() 내 크기를 측정할 때, 대부분 내가 포함하고 있는 자식의 크기를 먼저 알아야 내 크기를 알 수 있는 경우가 많기 때문에, 내 자식 뷰들을 순회하면서 크기를 받아서 최종적으로 내 크기를 그림 이 단계가 모두 끝나면 onMeasure() 가 호출되고, onMeasure() 에서 얻어온 width, height 로 크기를 가늠 할 수 있음. 이 과정에서 추측할 수 있듯이, layout 구조를 그릴 때, 뷰 뎊스가 깊어지면 깊어질 수록, measure() 시간이 오래걸림. layout(..
Dagger dependency 를 2.28.1-alpha3 에서 2.31-alpha 로 변경 error: cannot find symbol @dagger.hilt.InstallIn(value = {ApplicationComponent.class}) 에러 발생 ------ solved ApplicationComponent -> deprecated in 2.30 SingletonComponent 로 대체 @Module @InstallIn(SingletonComponent::class) object DataSourceModule { //..... }
Manifest 에서 Intent Filter 를 사용하는 요소들은 android:exported 를 명시적으로 선언하도록 targetSdk=31 부터 변경됨. 이 설정을 명시하지 않을 경우, Android 12 부터는 앱 설치가 안됨. // intent filters...... 위는 커스텀 스킴, Launcher 등의 intent filter 가 걸려 있는 Main Activity 이다. 위 예 처럼. 이제 intent-filter 를 사용하는 애들은 exported 를 true, false 로 명시해줘야함. android:exported 에 대한 설명은 아래에 있음. https://developer.android.com/guide/topics/manifest/activity-element?hl=ko#..
String 으로 된 시간을 받아와서 시간 컨트롤 하기 val p = "PM 11:00:00" var time = LocalTime.parse(p, DateTimeFormatter.ofPattern("a hh:mm:ss")) time = time.plusSeconds(2000) println(time.format(DateTimeFormatter.ofPattern("HH:mm:ss"))) Format 은 입맛에 맞게 조정
아래와 같은 뷰가 존재할 때, view.layer.cornerRadius = yourRadiusValue 로 하면 네 귀퉁이 모두 둥그렇게 변한다. 근데, 맨위에 두 모서리만 동그랗게 하고 아래 두 모서리는 그대로 유지시키고 싶으면 어떻게 할까? view.layer.cornerRadius = 5 view.layer.maskedCorners = [.layerMinXMinYCorner, .layerMaxXMinYCorner] view.layer.masksToBounds = true 위처럼 코딩하면, 위의 두 모서리는 5의 round 를 가지고, 아래는 그대로 뾰족해져있게된다. X, Y 좌표를 생각하며 내가 원하는 부분을 둥그렇게 만들면 됨.
- Total
- Today
- Yesterday
- 배열
- IOS
- C
- xcode
- C언어
- BBC 가쉽
- 스위프트
- GIT
- CentOS
- 손석희
- Android
- node.js
- Kotlin
- 앵커브리핑
- mysql
- 안드로이드
- 점유율
- Asterisk
- Node
- 뉴스룸
- 서버
- linux
- Phaser
- git hub
- 깃헙
- 노드
- nodejs
- php
- Swift
- 리눅스
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |