
Android Q부터 시스템에서 Dart Theme 를 제공한다. Dark 테마의 여러 이점 전력 사용량을 줄인다. 조도가 낮은 환경에서 사용 용이 밝은 빛에 민감한 사용자의 가시성 향상 Android Q에서 다크 테마를 활성화하는 세 가지 방법 새 시스템 설정 : Settings -> Display -> Theme 알림 트레이에서 테마 변경 픽셀기기에서는 배터리 보호기 모드에서도 다크 테마가 활성화된다. (다른 OEM들에서는 이 행동을 지원수도 있고 그렇지 않을 수도있다.) 다크 테마 적용 res/values/styles.xml 에서 아래와같이 다크테마를 적용할 수 있다. Meterialcomponent 의 Dark theme setting Configuration changes activity의 co..

업무 중에큰 이미지뷰가 화면에 겹쳐 올라가면서 많은 메모리를 잡아먹고 끝내는 OOM을 외치며 죽어가는 앱을 보았습니다.. 이 몇장의 이미지는 꽤 큰 (대략 1200*900) 이미지 5~6장이 겹쳐져야 했습니다. 이런 부분에대해서 해결방안을 찾던중 저의 영원한 스승님 물깡이님께서 조언을 주셨고 그 조언을 내용을 바탕으로 테스트 코드를 만들어보았습니다. 노아님의 포스팅 성화에 글을 작성합니다. 제가 하려던 실무 이미지를 그대로 갖다 쓸수는 없으니 인터넷에서 이러한조건에 맞는 이미지를 구했습니다. 아래의 이미지를 0부터 9까지 총 10장의 이미지로 구성되어있습니다. 이 10장의 이미지로 샘플을 테스트해보겠습니다. 먼저 1장의 이미지 뷰를 메모리에 올렸을 때의 상태입니다. 위의 코드와 같이 0번의 이미지만 올려..
위의 이미지로 마스킹 처리해서 프로그레스를 만들일이 있었습니다. 일단 리소스에서 해당 이미지를 가져와서 bitmap으로 만들어줍니다.val progress = BitmapFactory.decodeResource(context.resources, R.drawable.progress) 그리고 마스킹 처리할 부채꼴 모양의 도형을 비트맵으로 그려줍니다.private fun bitmapSector(): Bitmap { val bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888) val canvas = Canvas(bitmap) val paint = Paint() paint.isAntiAlias = true val oval = RectF(0f, ..
업무에서 와이파이 다이렉트를 통해서 파일을 송신해야할 일이 생겼습니다. 그래서 구글링을 해서 막 예제를 찾았는데, 막상 찾은 예제들이 제대로 동작도 안하고 소스 파악도 힘들었습니다. - 구글링을 통해 찾을수 있는 예제(https://github.com/ahmontero/wifi-direct-demo) ; 이런 종류의 예제가 많이 보입니다. 그래서 저 나름대로 정리해서 이미지를 전송하는 샘플을 하나 만들어봤는데요, 혹시 저와같은 고생(?)을 하시는분들에게 도움이 되길 바랍니다. 아래는 제가 만든 와이파이 샘플의 주소입니다.https://github.com/karrel84/WifiDirectSample AndroidManifest.xml와이파이 다이렉트를 이용하기위해서는 기능 사용이 필요합니다.그리고 제 예..
투명 인디케이터 만들기 때때로 투명 인디케이터를 만들어야할 때가 있습니다.기획자 거지같은 UI 휴 싸우기도 지쳤다 해달란대로 해주자아래와 같은 화면에서 인디케이터를 투명으로 만들어봅시다. 완전 투명한 인디케이터를 사용하기위해 NoActionBar 테마를 사용합니다.그리고 투명한 인디케이터를 설정하기위한 statusBarColor 프로퍼티를 투명으로 적용합니다.@android:color/transparent그런데 해당 프로퍼티는 api21(5.0 롤리팝) 부터 이용 가능하므로 styles 폴더를 21버전으로 따로 만들어서 적용해야 합니다.이렇게 적용하고 앱을 실행해 보겠습니다.안드로이드 9.0 P 뭔가 변경 되긴 했는데 인디케이터 영역에 하얀 화면이 나오네요.이건 인디케이터가 투명 처리되었는데 앱의 배경색..
fontFamily 폰트패밀리를 이용해서 폰트를 지정해보자!res -> 우클릭!! -> New -> Android Resource Directory Resource type을 font로 지정하고 오오케이 만들어진 font 폴더에 폰트 파일을 넣어 봅시다.촤라락 준비한 폰트파일을 넣었습니다. 이제 fontFamily 파일을 만들어봅시다.font -> New -> Font resource file 을 클릭해서 폰트 파일을 만들 수 잇어요 해당 파일이 만들어지면 아래와같이 폰트를 설정해 줍니다. android:font 는 api 26 부터 사용할 수 있으니그 이하 버전에서 font 를 사용하려면 서포트팩 라이브러리를 사용해서 android 네임스페이스 대신 app 네임스페이스를 이용해서 적용하면 됩니다. 이제..
Flavors프로젝트에서 몇가지 기능만 수정해서 따로 출시해야할 경우가 있다.그럴때 프로젝트를 복사해서 2개 이상을 관리하지 않고 Android의 Flavors를 이용하여 간단하게 관리하는 방법에 대해 알아보자 productFlavorsbuild.gradle(app)에 productFlavors를 구현합니다.android { compileSdkVersion 28 defaultConfig { applicationId "karrel.kr.co.myapplication" minSdkVersion 15 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUni..
콘텍스트란 무엇인가? 콘텍스트란 ‘맥락, 전후 사정’이라는 뜻을 갖고있다. 그리고 Context 어원은 라틴어 ‘contexts, contextere’ 에서 출발했다. 여기서 con-은 ‘함께(togther)’를 뜻하고 ‘texere’는 ‘짜다(weave, 옷감등을 엮어서 짜다), 만들다’ 를 의미한다. 컨텍스트는 언원적으로 ‘함께 관계를 만들다’라는 의미를 내포한다. 안드로이드에서 콘텍스트는? 애플리케이션 환경에 대한 글로벌 정보에 대한 인터페이스안드로이드 시스템이 구현하는 추상 클래스애플리케이션별 리소스 및 클래스에 액세스할 수 있다.액티비티를 시작하거나, 브로드캐스팅 및 인텐트 수신등의 애플리케이션 레벨 작업에 대한 상향 호출 허용그러니까 Context가 있어야 리소스나 클래스에 접근하거나, 안드로..
# Built application files/*/build/ # Crashlytics configuationscom_crashlytics_export_strings.xml # Local configuration file (sdk path, etc)local.properties # Gradle generated files.gradle/ # Signing files.signing/ # User-specific configurations.idea/libraries/.idea/workspace.xml.idea/tasks.xml.idea/.name.idea/compiler.xml.idea/copyright/profiles_settings.xml.idea/encodings.xml.idea/misc.xml.idea..
- Total
- Today
- Yesterday