Camera2 Basic 소스 살펴보기

  카메라 Android의 카메라 HAL (Hardware Abstraction Layer)은 Camera 2의 상위 수준의 카메라 프레임 워크 API를 기본 카메라 드라이버 및 하드웨어에 연결합니다. 카메라 서브 시스템은 카메라 파이프 라인 구성 요소에 대한 구현을 포함하는 반면 카메라 HAL은 이러한 구성 요소의 버전을 구현하는 데 사용할 인터페이스를 제공합니다. 구조 다음 그림과 목록은 HAL 더보기…

안드로이드 VectorDrawable 알아보기

VectorDrawable 이전 포스트에서 Vector 이미지 포맷을 이용했을때의 장단점에 대해서 알아보았습니다.  이번 시간은 안드로이드 리소스인 VectorDrawable에 대해서 알아보도록 하겠습니다. xml 파일에서 <vector> 요소를 정의하는것을 통해 벡터 그래픽 방식의 drawable 파일을 생성 할 수 있습니다. Notice: 다시 그리는 퍼포먼스의 최적화를 위해 각 VectorDrawable에  대해 하나의 비트맵 캐시가 생성됩니다. 따라서 동일한 VectorDrawable을 참조한다는 것은 더보기…

글쓴이 Charlezz,

Vector 이미지 포맷 이해하기

Vector 이미지 포맷 안드로이드 기기는 다양한 화면 크기, 모양 및  밀도로 제공됩니다. 그래서 각 스크린에 맞는 리소스를 준비하는것은 까다롭기 마련이죠. 벡터를 이용한다면 화질손실 없이 화면 밀도에 맞게 크기를 조정할 수 있습니다. 또한 비트맵 대신 벡터 리소스를 사용하면 APK 사이즈가 줄어듭니다 비트맵 이미지와 벡터 이미지의 차이 대부분의 이미지 형식 (png, jpeg, 더보기…

Samsung Galaxy Foldable Emulator로 테스트 해보기

Testing with Foldable Emulator 테스트하기 앱 개발자는 접이식 환경에서 앱이 어떻게 반응하는지 테스트 할 수 있습니다. 이를 통해 응용 프로그램 연속성 및 다중 재개를 위해 제공되는 에뮬레이션 환경을 사용하여 올바르게 수행되었는지 확인할 수 있습니다. 앱 연속성 Android Studio 및 Android 태블릿에서 AVD (Android 가상 장치)를 실행할 수있는 에뮬레이터 앱이 제공되어 더보기…

Back 버튼이 Android Q 에서 부터는 없어질 수 있습니다.

Apple이 iPhoneX 부터 홈버튼을 없앴죠 Android Pie 부터는 안드로이드도 Home버튼에 제스쳐 기능을 넣어서 아이폰과 유사한 기능을 사용할 수 있게 되었었습니다. Android Pie에서 제스쳐 홈버튼 활성화 하는방법 일반: 설정 – 시스템 – 제스쳐 – 위로 스와이프하여 홈버튼 – 활성화 삼성 갤럭시 기준: 설정 – 디스플레이 – 네비게이션바 – 네비게이션 스타일 – 더보기…

글쓴이 Charlezz,

안드로이드의 Context

Android의 Context란? Application, Service, Activity 모두 Context를 상속 했다는 사실 알고계셨나요? 공식문서에 나와있는 Context의 개요를 확인해보면, 애플리케이션 환경에 대한 전역정보가 컨텍스트로 연결됩니다. Context는 구현이 Android 시스템에 의해 제공되는 추상 클래스입니다. 애플리케이션 별로 리소스 및 클래스에 대한 접근은 물론 Activity의 실행, 브로드 캐스팅 및 Intent수신과 같은 애플리케이션 레벨에 대한 호출을 허용합니다. 쉽게 더보기…

글쓴이 Charlezz,

프레그먼트간 통신하는 3가지 방법

프레그먼트 통신(Fragment Commnication) 안드로이드 공식 문서인 Communicate with other fragments에 프레그먼트간 통신하는 방법에 대해서잘 나와있지만, 저는 또 다른 방법들에대해서 설명하고자 합니다. AAC ViewModel 이용 ViewModel을 이용하면 Activity를 라이플싸이클 오너로 등록하여 공통된 뷰모델을 이용할 수 있습니다.  app레벨의  build.gradle에 다음과 같이 의존성을 추가합니다. //LiveData and ViewModel def lifecycle_version = “1.1.1” implementation “android.arch.lifecycle:extensions:$lifecycle_version” 더보기…

ViewPager2 톺아보기

Released ViewPager2! 구글이 ViewPager를 2011년에 릴리즈한 이후로 새로운 버전인 ViewPager2(알파버전)를 릴리즈 했습니다.  많은 개발자들이 페이지단위의 기능을 구현하기 위해 이 컴포넌트를 사용하고 있습니다.  많은 개발자들이 사용한다고 해서 사용하기 쉬운 컴포넌트는 아닙니다. ViewPager를 만들기위해서는 Adapter도 구현해야하며, 어떤 어댑터를 구현해야할지 항상 고민하게 됩니다. FragmentPagerAdapter를 써야할지 또는  FragmentStatePagerAdapter써야하는지 말이죠. 그리고 Fragment를 꼭 사용해야하는지도… New 더보기…

Android Custom View(커스텀 뷰) 만들기

커스텀 뷰 만들기 커스텀뷰는 왜 필요할까? 안드로이드 프레임워크에서 기본 제공되는 위젯들로는 Button, TextView, EditText, ListView, CheckBox, RadioButton, Spinner 등이 있고 레이아웃으로는 LinearLayout, FrameLayout, RelativeLayout 등이 있습니다. 하지만 실제로 앱을 만들다 보면 기획자, 디자이너, 사용자(클라이언트)의 요구사항에 맞는 기능을 위의 열거한 뷰들로 만들기 어렵거나 불가능한 경우가 부지기수입니다.  예를들면, 원형 썸네일을 표현하기 위한 더보기…

글쓴이 Charlezz,

[OpenGL] 11. GLSurfaceView와 MediaPlayer로 동영상 플레이어 만들기

Video Player based on GLSurfaceView 텍스처 있는 사각형 만들기까지 성공했다면, Android OpenGL ES에서 동영상 플레이어를 구현하는 방법자체는 간단합니다. SurfaceTexture에 대한 기본적인 내용을 알고 계시다면 더욱 이해하기 쉽습니다. 쉐이더 코드부터 차근차근 살펴보겠습니다. 버텍스 쉐이더코드는 텍스처 있는 사각형 만들기에 있던 것과 같아 생략합니다. “#extension GL_OES_EGL_image_external : require\n” + “precision mediump float;” + “varying 더보기…