안드로이드 192

[Android] Camera PreView 화면 캡처 및 배경 이미지 적용 (3)

Camera PreView 화면 캡처 및 배경 이미지 적용 이번에는 프리뷰 화면 배경에 이미지를 추가하는 법입니다. xml에 배경이미지를 추가합니다. * 블로그에서 구현한 방식은 Preview화면 앞에 배경이 투명인 이미지를 추가하여 마치 배경이 있는 카메라 화면인 것처럼 만들었다. Preview화면에 직접 오버레이 된 방식이 아니므로 캡처시 카메라이미지 + 선택한 배경 이미지를 합성했습니다. btnTransform.setOnClickListener{ //전면, 후면 전환시 배경 이미지를 초기화 해줍니다. ivFrameSet.setImageDrawable(null) transformCamera() } ivFrame1.setOnClickListener{ ivFrameSet.setImageResource(R..

안드로이드 2022.10.25

[Android] Camera Preview를 화면 캡처 및 배경 이미지 적용 (2)

Camera PreView 화면 캡처 및 배경 이미지 적용 1.캡처 기능 추가 _activity_main.xml 캡처 버튼을 추가해 줍니다. btnCapture.setOnClickListener{ myCameraPreview?.takePicture() } 캡처 버튼에 takePicture()함수를 적용해 줍니다. _MyCameraPreview.java /** * 이미지 캡처 */ public void takePicture(){ mCamera.takePicture(shutterCallback, rawCallback, jpegCallback); } /** * 이미지 저장을 위한 콜백 함수 */ private Camera.ShutterCallback shutterCalback = new Camera.Shutt..

안드로이드 2022.10.25

[Android] Camera PreView 화면 캡처 및 배경 이미지 적용 (1)

Camera PreView 화면 캡처 및 배경 이미지 적용 Camera api를 사용하여 화면을 캡처하고 캡처한 화면에 배경 이미지를 적용하는 방법. 안드로이드 카메라 API문서에는 Camera2 Api사용을 권장한다고 한다. 작성자는 아래와 같은 이유로 Camera api를 사용 했다고한다. 1. Camera2 Api는 안드로이드 5.0(롤리팝)이상부터 사용 가능합니다. 저는 안드로이드 4.4(킷캣) 사용자도 사용 할 수 있게 만들었다. 2.Camera2 Api는 카메라의 많은 기능을 사용 할 수 있지만 그만큼 초기 코드 설정이 복잡합니다. 공부양이 방대하여 일단 Camera Api를 사용했습니다. 0. 상단바 제거 _style.xml 1.권한 설정 안드로이드 6.0(마시멜로우) 이상 버전부터는 권한 ..

안드로이드 2022.10.25

[Android] 외부 스킴(Custom Url Scheme) 사용 방법

Android 외부 스킴(Custom Url Scheme) 모바일 환경에서 링크(스킴)을 눌렀을 때 해당 앱이 설치되어있다면 실행되는 적이 있었죠? 외부에서 앱을 실행 시킬 수 있는 방법. 1.AndroidManifest에서 intent filter를 설정해 줍니다. 실행 시키고 싶은 Activity에 scheme:host형태의 URL을 정의해 줍니다. 이렇게 선언하면 blackjinapp://action URL을 MainActivity가 실행됩니다. 2.구현 테스트 하기 파이어베이스를 통해 간단히 구현 테스트를 하실 수 있습니다. 3.파라미터 전송하기 위 방법으로 앱을 실행하는데 성공하셨다면 이번에는 파라미터를 전달해 보겠습니다. blackjinapp://action?when=201809&message..

안드로이드 2022.10.25

[Android] 안드로이드 앱 아이콘(App icon) 사이즈

안드로이드 앱 아이콘 스토어용 이미지 : 1024 x 500 스토어 등록시 APP을 표현하는 이미지 한장이 필요( 추가되는 다른 이미지들은 스크린 샷) 스토어 등록용 아이콘 : 512 x 512 스토어에서 디테일 페이지 진입시 보이는 가장 큰 ICON 접두어 및 해상도별 사이즈 (prefix : ic_launcher / ​ic_launcher_xxxxx.png) xxxhdpi : 192px (x4) xxhdpi : 144px (x3) xhdpi : 96px (x2) hdpi : 72px (x1.5) mdpi : 48px (x1) ldpi : 36px (x0.75) https://m.blog.naver.com/PostView.nhn?blogId=naroo&logNo=220970216584&proxyRefe..

안드로이드 2022.10.25

디바이스를 구분하는 고유번호 ANDROID_ID 오레오

디바이스를 구분하는 고유번호 디바이스를 구분하는 고유번호로 ANDROID_ID를 사용했습니다. android_id = Settings.Secure.getString(getApplicationContext().getContentResolver(), Settings.Secure.ANDROID_ID); ANDROID_ID는 디바이스가 최초 Boot될 때 생성 되는 64-bit값입니다. 이는 디바이스를 공장 초기화 하지 않는이상 바뀌지 않는 고유 값이라고 알고있었습니다. 하지만! 이 값이 변하는 경우를 보았습니다. Android 8.0(오레오) 이상 버전에서 부터 정책이 바뀌게 되었는데요. https://developer.android.com/about/versions/oreo/a..

안드로이드 2022.10.25

sharedViewModel, Android Fragment간의 ViewModel공유하기

sharedViewModel, Android Fragment간의 ViewModel공유하기 https://thdev.tech/androiddev/2020/07/13/Android-Fragment-ViewModel-Example/ Android Fragment 간의 ViewModel 공유하기 | I’m an Android Developer. thdev.tech sharedViewModel https://myung6024.tistory.com/188 Koin을 이용하여 Fragment 끼리 ViewModel 공유하는 방법 하나의 화면에 여러개의 Fragment가 있거나 뷰페이저를 사용할 때에도 비슷한 데이터를 사용해서 같은 뷰모델을 사용하여 데이터를 공유하고 싶을 때 사용할 수 있는 방법이다. 아래는 View..

안드로이드 2022.10.25

[Android] Architecture, Framework, Platform에 대해 알아보자

Architecture, Framework, Platform에 대해 알아보자 안드로이드 플랫폼 아키텍쳐의 구조 안드로이드는 리눅스 커널을 기반으로 하고 있는 리눅스 계열 OS입니다. 커널이란 하드웨어와 우리가 사용하고 있는 OS를 연결시켜주는 다리와 같은 존재로 운영체제에 있어서 핵심이기도 합니다. 1. 커널(kernel)의 담당 1) 보안 - 하드웨어와 프로세서의 보안을 담당합니다. 2) 자원관리 - 한정된 시스템 자원을 효율적 관리, 프로그램의 실행을 원만하게 합니다. *프로세스 처리를 관리하는 것을 스케쥴링이라 합니다. 3) 추상화 - 같은 종류의 부품으로 수 많은 종류의 하드웨어를 설계할 수 있기 때문에 하드웨어에 직접 접근하는 것은 다소 복잡하게 될 수 있습니다. 일반적으로 커널은 운영체제의 복..

안드로이드 2022.10.24

[Android] 블루투스(Bluetooth) 개발에 대해 알아보자

안드로이드 블루투스(Bluetooth) -블루투스를 사용하여 통신하려면 기기에서 지원되는지 확인하고, 지원되는 경우 활성화 해야한다. -블루투스가 지원되지 않는 경우 모든 블루투스 기능을 비활성화 해야한다. -블루투스 지원O, 비활성화 된경우 애플리케이션을 떠나지 않은 상태에서 블루투스를 활성화하도록 요철할 수 있다.(BluetoothAdapter) 1.BluetoothAdapter를 가져옵니다. val bluetoothAdapter: BluetoothAdapter? = BluetoothAdapter.getDefaultAdapter() if (bluetoothAdapter == null) { // Device doesn't support Bluetooth } 2.블루투스 활성화 블루투스 활성화를 요청하려..

안드로이드 2022.10.24

[Android] 블루투스(Bluetooth) Gatt 개발 순서

안드로이드 블루투스(Bluetooth) Gatt 개발 순서 1.oncreate에서 ACTION_BOND_STATE_CHANGED, ACTION_STATE_CHANGED Broadcast리시버 등록 2. 권한 체크 3. bluetooth scan 4. bluetooth connect -기존 연결 되어있으면 끊고 연결 BleManager.getInstance.apply{ connect } uuid는 Service, notify, write UUID 성공: (1)연결된 device 저장 (2)Service (3)characteristics (4)Notify연결 (5)write연결 gatt?.run{ this.service .filter{ it.uuid.toString() == serviceUuid } .map..

안드로이드 2022.10.24