개발새발 - IT 기술블로그
article thumbnail
[안드로이드] Toast 메시지 누를때마다 갱신시키기
Android 2023. 4. 28. 17:17

안녕하세요. 이번 포스팅에는 안드로이드 개발에서 자주 사용하는 토스트 메시지를 즉시 생성(갱신)하는 방식에 대해 알아보겠습니다. 개요 토스트메시지는 일반적으로 정해진 Duration(지속시간)이 지속될 때 까지 다른 토스트 메시지들의 접근을 Blocking합니다. 왜냐하면 같은 스레드를 동기방식으로 사용하기 때문이죠. 그래서 만약 사용자가 토스트 메시지를 짧은시간에 여러번 호출한다면 아래 GIF와 같이 본인만의 시간의 흐름을 가지기 시작하며, 이는 사용자로 하여금 반응이 느리고 렉이 걸리는 듯한 오해를 가지게하기 쉽습니다. ※ 메시지가 서로 다름을 쉽게 확인하기위해 1씩 증가하는 카운트를 붙였습니다. 그럼 누르는 즉시 토스트 메시지로 띄워 주려면 어떻게 해야할까요? 저는 버튼이 클릭 될 때마다 새로운 스..

article thumbnail
[안드로이드] 텍스트 폰트 적용하기(Kotlin,Java,XML)
Android 2023. 4. 7. 17:05

안녕하세요. 이번 포스팅에선 문자열에 폰트를 적용하는 방법에 대해 알아보겠습니다. 1. XML 레이아웃 파일에서 적용하기 2. Java and Kotlin 파일에서 적용하기 XML 레이아웃 파일에서 적용하기 Setting 먼저 프로젝트 res 폴더에 font 패키지를 추가하고 폰트 ttf 혹은 otf파일을 넣어줍니다. res 폴더 우클릭 > New > Android Resource Directory > Resource type: font > 폰트파일 복사/붙여넣기 activity_main.xml android:fontFamily="@font/폰트명" Java and Kotlin 파일에서 적용하기 Setting 클래스파일에서 폰트를 변경하기 위해 Assets 폴더를 생성합니다. app 폴더 우클릭 > Ne..

article thumbnail
[안드로이드] 앱 강제 재시작하는 방법!
Android 2023. 2. 15. 14:15

안녕하세요. 이번 포스팅에서는 현재 컨텍스트에서 앱을 재시작하는 방법에 대해 알아보겠습니다. 보통 데이터베이스를 롤백시키거나 언어설정을 변경하는 등 어플리케이션의 환경을 변경할 때 앱을 재시작하는 경우가 많습니다. 이럴 때 유용한 코드를 소개드리겠습니다. 원리는 현재 프로세스를 종료시키면서 앱의 패키지 컴포넌트를 Intent의 makeRestartActivityTask 메서드의 파라미터로 호출해 다시 실행시키는 방식입니다. 작성코드👀 Kotlin private fun restartApplication(mContext: Context) { val packageManager: PackageManager = mContext.packageManager val intent = packageManager.getLa..

article thumbnail
[안드로이드] WifiManager로 연결 가능한 와이파이 검색하기
Android 2023. 1. 30. 11:23

안녕하세요. 이번 포스팅에서는 안드로이드의 WifiManager를 이용하여 연결 가능한 와이파이의 목록을 스캔하는 기능을 구현해보겠습니다. 가장 간단하게 목록만 출력하는 예제이니 연결이나 다른 기능들은 사용하지 않았습니다. 개요 해당 포스팅에서는 WiFi 목록을 호출하기 위한 권한 요청과 WifiManager 객체를 생성하여 스캔하고 결과를 리스트에 추가하는 예제입니다. 본문 권한 요청 먼저 AndroidManifest 파일에 권한을 사용하겠다고 명시해줍니다. 권한은 인터넷사용 + 현재위치 + 와이파이 접근 총 5가지입니다. 다음으로 유저에게 민감정보인 위치권한을 직접 요청하는 코드를 작성합니다. private fun requestPermission(activity: Activity) { if(Activ..

article thumbnail
[안드로이드] Spannable로 글자마다 다른 설정!
Android 2022. 12. 13. 18:05

안녕하세요. 이번 포스팅은 하나의 문자열에서 글자의 자릿수마다 다른 설정을 줄 수 있는 Spannable String에 대해서 알아보겠습니다. Spannable String은 안드로이드 프레임워크 내부에서 제공하는 기능이며, 사용방법이 굉장히 다양하기 때문에 이번 예제에서는 자주 사용되는 몇가지만 다뤄보도록 하겠습니다. 결과 코드👀 아래 코드는 spannable string이라는 하나의 문자열의 한 부분을 수정한 코드입니다. TextView textView = findViewById(R.id.textView); SpannableStringBuilder span = new SpannableStringBuilder("spannable string"); span.setSpan(new android.text.s..

article thumbnail
[안드로이드] 에러 'compileDebugJavaWithJavac' task and 'compileDebugKotlin' task jvm target compatibility should be set to the same Java version. 해결
Android 2022. 12. 7. 13:32

Error 'compileDebugJavaWithJavac' task (current target is 11) and 'compileDebugKotlin' task (current target is 1.8) jvm target compatibility should be set to the same Java version. 작성코드👀 Android { ... compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } kotlinOptions { jvmTarget='11' } ... } 자바 버전을 JavaVersion.VERSION_1_8(8)에서 JavaVersion.VERSI..

article thumbnail
[안드로이드] 네비게이션 바 없애기( + 몰입모드)
Android 2022. 12. 2. 15:53

작성코드👀 Java // 몰입모드로 전환됩니다 public void FullScreenMode() { getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION ); } // 몰입모드에서 시스템 네비게이션바만 보여줍니다 private void ShowNavBarOnly() { getWindow().getDecorView().setSystemUiVisibi..