분류 전체보기

Android

Android TextClock format 지정하기

TextClock은 생각해보면 되게 흔한 기능인데 텍스트로 시간을 보여주기 위한 방법을 고민하다 찾게된 클래스이다. 놀랍게도 API 17에서 추가된 꽤 오래된 클래스였다. 형식 지정하기(format) TextClock으로 시간을 보여줄 때 형식을 지정할 수 있다. 12시간제 혹은 24시간제로 말이다. 게다가 SimpleDateFormat에서 사용하던 형식과 같이 사용할 수 있다. 나의 경우, 특정 단말기에서 시간 형식 지정이 되지 않았다. 그래서 이리저리 검색하던 결과 방법을 찾았다. 바로 12시간제 혹은 24시간제 중 하나를 null로 처리해주는 것이다. // 12시간제를 사용하는 경우 textClock.format12Hour = "HH:mm:ss" textClock.format24Hour = null..

Android

Android 14에서 경험한 버그

먼저 내가 경험한 버그는 단순히 Android 14버전에서 모두 나오는 현상이 아님을 알린다. 왜냐하면, Android 14버전의 구글 픽셀폰에서는 이 버그가 발생하지 않기 때문이다. 어떤 버그인가? setTypeface 메소드가 작동하지 않는 버그이다. setTypeface 메소드는 공식 사이트의 링크를 첨부한다. https://developer.android.com/reference/android/widget/TextView#setTypeface(android.graphics.Typeface) TextView | Android Developers android.inputmethodservice developer.android.com Android 14, One UI 6.0의 삼성 디바이스에서 발생하는..

Android

Android Media3 Exoplayer Resize Mode 정리

모드 리스트 RESIZE_MODE_FIT = 0 RESIZE_MODE_FIXED_WIDTH = 1 RESIZE_MODE_FIXED_HEIGHT = 2 RESIZE_MODE_FILL = 3 RESIZE_MODE_ZOOM = 4 모드 설명 RESIZE_MODE_FIT의 경우, 설정된 비율에 맞춰 width 혹은 height를 줄인다. 이 모드는 기본 값이다. AspectRatioFrameLayout 클래스의 생성자에서 resizeMode 멤버 변수 값을 0으로 설정하기 때문에 초기값은 0이다. RESIZE_MODE_FIXED_WIDTH의 경우, width를 고정하고 height를 늘이거나 줄여 설정된 비율을 맞춘다. RESIZE_MODE_FIXED_HEIGHT의 경우, height를 고정하고 width를 늘..

Android

Android Jetpack Compose ConstraintLayout match constraint

Jetpack Compose에서 ConstraintLayout을 사용하며 겪은 어려움을 공유해보려한다. (내가 Compose에 대한 사전지식이 충분하지 않은 탓이 클 것이라 생각하지만 말이다.) 내가 가장 힘들었던 부분은 제목에 적은 것처럼 match constraint 속성을 어떻게 적용해야하는가였다. match constraint라는 말이 어색할 사람들을 위해 풀어서 설명해보자면 이런 것이다. width, height를 0dp로 설정하고 View의 start, end, top, bottom에 제약 조건을 건다. 그렇게 되면 뷰가 제약 조건에 맞춰 늘어난다. 당연히 Compose에서도 그렇겠거니! 생각을 하고 Modifierdml width, height를 0.dp로 설정한 뒤 실행을 했더니 정말 그대..

Language/Swift

Swift - 클래스(Class)

1. 클래스란 무엇일까? 클래스는 참조(reference) 타입이다. 이름은 파스칼 케이스로 작성한다. 클래스는 다중 상속이 불가능하다. 2. 클래스 관련 문법 클래스를 선언할 때는 class 키워드를 사용한다. class Sample { // 가변 프로퍼티 var mutableProperty: Int = 100 // 불변 프로퍼티 let immutableProperty: Int = 100 // 타입 프로퍼티 static var typeProperty: Int = 100 // 인스턴스 메서드 func instanceMethod() { print("instance method") } // 타입 메서드 static func typeMethod() { print("type method - static") } ..

Language/Swift

Swift - 구조체(Struct)

1. 구조체란 무엇일까? 구조체는 값(value) 타입이다. 스위프트에서 대부분 타입은 구조체라고 한다. 타입이름은 파스칼 케이스를 사용한다. 2. 구조체 관련 문법 구조체를 선언할 때는 C언어처럼 struct 키워드를 사용한다. struct Test { // 가변 프로퍼티 var mutableProperty: Int = 100 // 불변 프로퍼티 let immutableProperty: Int = 100 // 타입 프로퍼티 static var typeProperty: Int = 100 // 인스턴스 메서드 func instanceMethod() { print("instance method") } // 타입 메서드 static func typeMethod() { print("type method") } ..

프로그래머스

[PCCE 기출문제] 2번 / 피타고라스의 정리 자바(Java)

이번에는 피타고라스의 정리에 관한 문제인데 다들 아는 a제곱 + b제곱 = c제곱 공식을 알고 있는 지에 대해 확인하는 문제같다. 문제 결국 문제에서 요구하는 값은 b제곱인데 이는 보통 c제곱 - a제곱이라는 사실을 알 것이다. 풀이 여기서 이 문제가 특이했던 점은 2줄 이상 수정 시 에러가 난다고 한다. 그래서 한 줄만 수정했더니 저렇게 초록색으로 괜찮다는 표시가 보였다. 내가 수정한 줄의 원본은 int b_square = c - a;였다. 실행 결과

프로그래머스

[PCCE 기출문제] 1번 / 출력 자바(Java)

이 문제를 보고 PCCE가 뭔가 했더니 프로그래머스의 코딩필수역량인증시험이라고 한다. 그래서 기출문제를 하나씩 풀어보고 있다. 다만, 자주 사용하던 코틀린은 없다는게 아쉬울 따름이다. 문제 간단히 말해 주어지는 코드의 빈칸 넣기 문제이다. 풀이 아래 3줄의 프린트문에 맞춰 변수 값을 채워주었다. 정말 언어를 알고 있느냐 수준의 문제였다.

프로그래머스

배열의 원소 삭제하기 코틀린(Kotlin)

정말 오랜만에 프로그래머스에서 몸풀기를 해보았다. 이번 문제는 정답률 대비 정답자가 적은 문제여서 선택해보았다. 문제 arr 원소마다 delete_list를 반복시켜 해당 숫자가 존재하는지 체크하는 방식으로 중복 원소를 걸러내고 남은 arr을 리턴하는 방식으로 해결했다. 물론 이 때, arr을 mutableList로 바꿔서 작업했다. 풀이 arr을 MutableList로 바꾼 후 중복 검사에서 걸린 원소는 remove를 한 뒤, 문제의 요구 사항에 맞춰 IntArray로 형변환 후 리턴해주었다. 실행 결과

Android

Android Transparent Activity 만들기(투명 액티비티)

이번에 소개해볼 경험은 투명 액티비티를 만들어 본 경험을 공유해보려 한다. 다른 글처럼 이 기능이 왜 필요했나 설명해보겠다. 이번 요구사항은 툴바 우상단 옵션 메뉴를 눌렀을 때, FAB(FloatingActionButton) 여러 개가 보여야 했다. 나는 당연하게도 프래그먼트를 활용해야겠다 생각했지만 액티비티 구조가 CollapsingToolbarLayout을 사용하기 위해 rootView가 CoordinatorLayout이다 보니 스크롤 시 툴바 영역이 덮이지 않는 현상이 생겼다. 이렇다보니 액티비티를 띄우는게 더 심플하겠다는 생각이 들었고, 여기서 투명 액티비티를 만들어보게 되었다. 또, 투명 액티비티가 필요했던 이유는 일반 액티비티와 다르게 옵션 메뉴를 눌렀을 때 설정 메뉴들이 FAB로 보여야했기 ..

BonusTrack02.dev
'분류 전체보기' 카테고리의 글 목록 (9 Page)