First step in Canvas – (2) Path Basics

Path Basics 이번 포스팅에서는 Path가 무엇인지 살펴보고, Path로 어떤일들을 할 수 있는지 살펴보도록 하겠습니다. Path란? 안드로이드의 Path 클래스는 위에 있는 이미지 처럼 직선 및 곡선 등으로 구성된 복합적이고 기하학적인 내용을 그릴 수 있도록 도와줍니다. Path로 그리기 Canvas 스코프 내에서 path를 그릴 때 사용하는 메서드로 drawPath가 있습니다. 이미지 상의 두 drawPath는 더보기…

First step in Canvas – (1) Canvas Basics

캔버스 기초 이 포스팅은 캔버스의 전반적인 기초에 대해서 요약합니다. 캔버스 좌표계 안드로이드의 캔버스는 다른 좌표계들과 달리 좌측 상단을 원점으로 하여 값이 우측 하단 방향으로 증가합니다. 사각형 그려보기 이 캔버스의 정중앙에 사각형을 하나 그리기 위해서는 두 점이 필요합니다. 두 점은 각각 (x1,y1), (x2,y2)로 표현할 수 있습니다. 두 점 대신 하나의 점(x1,y1)과 함께 더보기…

RGB, HSV, YUV 색공간 이야기

색공간은 주로 세자리 또는 네자리의 숫자 또는 문자 등으로 색의 특징을 설명하기 위한 수학적 방법이다. 가장 많이 쓰이는 색공간은 RGB, YUV, HSV 등이 있다. 각 색공간의 특징에 대해서 알아보자. RGB RGB는 빛의 삼원색인 빨간색(R), 초록색(G), 파랑색(B)을 의미하며, 이 3가지 색을 가산혼합하여 색을 표현하는 방식이다. 가산혼합은 색을 섞을수록 밝아지는 특징이 있다.  더보기…

Android Asset Studio로 SVG를 XML로 변환시 텍스트가 렌더링 되지 않는다면..?

Android Asset Studio로 SVG를 XML로 변환시 텍스트가 렌더링 되지 않는다면..? SVG 리소스를 사용하려는 이유 벡터 드로어블을 사용하기 이전에는 각 화면 밀도에 맞는 비트맵 리소스를 제공해왔으나 APK에 포함되는 리소스의 크기도 크고 밀도별 리소스를 관리하는 것도 귀찮다. 안드로이드 APK의 사이즈를 줄이기 위해 비트맵 대신 벡터 드로어블을 사용하는 노력을 할 수 있다. 안드로이드 더보기…

안드로이드에서 blur효과 구현하기 : 성능 개선 및 LiveBlur 구현하기

안드로이드에서 blur효과 구현하기 : 성능 개선 및 LiveBlurView 구현하기 이번 포스팅은 지난시간에 다룬 Box Blur와 StackBlur편에 이어 세번째 이야기입니다. 스택블러(Stack Blur)는 2Pass 전략을 사용하여 빠른 이미지 프로세싱 시간과 품질을 보장한다. 스택블러 알고리즘과는 별개로 안드로이드에서 조금 더 성능을 개선하는 방법에 대해서 알아보자. 성능 개선 방법 이전 시간에 다룬 스택블러로 HD품질의 이미지를 더보기…

안드로이드에서 blur효과 구현하기 : Gaussian Blur, Stack Blur

안드로이드에서 blur효과 구현하기 : Gaussian Blur, Stack Blur 이번 포스팅은 지난시간에 다룬 안드로이드에서 blur효과 구현하기 : Box Blur에 이어 두번째 포스팅입니다. 박스블러(Box Blur)는 radius값에 따라 연산량이 많아지는 문제가 있었지만, 연산방법을 개선하여 이미지 처리 시간 문제를 해결했다. 하지만 blur의 품질은 여전히 좋지 못했고, 픽셀화된 느낌이 많이 든다. Gaussian Blur 박스블러와는 다르게, 더보기…

안드로이드에서 blur효과 구현하기 : Box Blur

안드로이드에서 blur효과 구현하기 안드로이드 SDK에서는 Blur에 관한 API를 제공하고 있지 않기 때문에 일반적으로 라이브러리를 사용하여 구현하게 된다.  Blur 효과를 구현하기 위해서는 이미지를 구성하는 픽셀에 대해서 먼저 알아야 한다. 픽셀(Pixel)이란? 픽셀은 화소라고도 하며 화면 또는 이미지를 구성하는 가장 기본이 되는 단위다. 어떠한 이미지를 크게 확대 했을 때 작은 점 또는 사격형으로 더보기…

렌더링 되는 View의 내부를 살펴보자

렌더링 되는 View의 내부를 살펴보자 더 나은 이해를 위해 이전 포스팅인 안드로이드 View가 렌더링 되는 과정을 먼저 참조할 수 있다. 렌더링하는 동안 사용되는 컴포넌트, 디스플레이 파이프 라인 및 UI와 하드웨어간 동기화가 발생하는 방식 등 더 자세한 내용을 파악하기 위해 다음과 같은 내용들을 알아야한다. UI스레드 모든 앱은 UI 스레드에서 View를 그리게 더보기…

글쓴이 Charlezz,

안드로이드 View가 렌더링 되는 과정

안드로이드 View가 렌더링 되는 과정 XML로 작성한 View가 어떻게 최종적으로 화면에 렌더링 되는지 알아보자. 좋은 퍼포먼스를 내기 위해서는 내부의 동작 방식이나 원리를 잘 알고있어야 한다. 만약 하드웨어가 무엇을 어떻게 하고 있는지 잘모른다면, 이를 이용하기도 쉽지 않다. 렌더링을 하는방식에 대해 알아보기전에 View의 생명주기에 대해서 알아보자. View의 생명주기 많은 개발자들이 View가 생명주기를 더보기…

Android의 Canvas에 그려보자 : 유용한 그래픽스 클래스와 기능들

원문 : https://medium.com/over-engineering/android-canvas-drawing-useful-graphics-classes-operations-2803e435e848 안드로이드 캔버스에 뭔가 그리는건 상당히 힘든 작업입니다. 많은 클래스와 개념들이 뭔가 그릴 때 이해를 돕기 위해 존재 합니다. 만약 이전 포스트를 읽지 않았다면꼭 먼저 참고해보시기 바랍니다. 이 포스트에서는 안드로이드 프레임워크에 포함되어있고 캔버스를 사용할 때 유용한 몇몇 클래스들에 대해서 알아 보겠습니다. Rect / RectF top, left, right, bottom 이 4가지 더보기…