기본 콘텐츠로 건너뛰기

3월, 2017의 게시물 표시

[안드로이드] 라운드 처리 & 그라데이션이 들어간 나인패치 이미지 사용하기

- 안드로이드 스튜디오에서 라운드 처리 & 그라데이션이 들어간 나인패치 이미지 사용하기 현재 수행하고 있는 안드로이드 프로젝트의 디자이너가 적용을 원하는 이미지를 보내줬다. 이미지는 그라데이션에 라운드 처리가 된 이미지였다. 기존에 적용 방법만 대충 알아보고 사각형의 단일 색의 나인패치 이미지만 적용해봤던터라 그 방법 그대로 적용을 해봤다. - 기존에 나인패치에 대해 알고 있었던 것. 1. 그냥 drawable 폴더에 넣으면 되겠지.. 2. 아무 해상도 이미지로 asset studio에서 나인패치 적용하면 알아서 키우고 줄이고 해 주겠지 무지한 것을 인지하지 못한 본인은 디자이너에게 자신있게  Android asset studio 를 이용해 나인 패치를 해 달라하고, 그걸 받아서 적용했다. 그런데 왠걸.. 제대로 되지 않는다. - 증상 1. 라운드 처리된 코너 부분이 뭉개져 나옴 2. 그라데이션이 엉망임 3. 원본 이미지의 굵기가 제대로 표시가 안됨 4. 완벽한 반원 형태가 아니고 늘어남 ...........할거 많은데.. 온갖 삽질을 하며 시간을 낭비했다. 맘 같아선 그냥 네모에 초록색이나 보라색으로 shape로 그려 버리고 싶었다... 하지만 디자이너님이 라운드 수치는 좀 줄인다 쳐도 그라데이션은 포기 할 수 없다고....ㅠㅠ 결국 다시 삽질 삽질 삽질.. 그러다 Stack Overflow에서 글 하나를 발견하게 되었다. 1. 단순한 사각형 테두리 이미지라면 기본 drawable 폴더에 넣어도 상관없다. 2. 만약, 라운드 처리가 된 이미지라면 drawable-xxhdpi 한 곳에 넣어두고 그 보다 낮은 해상도의 경우 스케일 다운이 되면서 대부분의 경우에 잘 나타난다.  오.... 뭔가 실마리를 잡은거 같아서 또 폭풍 검색.. 다른 글에서는.. 1. 나인패치 이미지는 기본 drawable에 두면 안된다. 2. d

[안드로이드] 안드로이드 4대 컴포넌트 - 액티비티(Activity)

- 안드로이드 4대 컴포넌트 액티비티(Activity) : 화면을 구성하는 가장 기본적인 컴포넌트 서비스(Service) : 백그라운드에서 동작하는 컴포넌트 컨텐츠 프로바이더(Contents Provider) : 응용 프로그램 간의(앱과 앱) 데이터를 상호 공유하기 위한 컴포넌트 브로드캐스트 리시버(Broadcast Receiver) : 단말기에서 발생하는 이벤트 수신을 위한 컴포넌트 (네트워크 상태, 배터리 상태, SMS수신, 스크린 꺼짐.. 등) - 안드로이드 액티비티의 생명주기( C-S-R-P-S-D) on C reate on S tart on R esume on P ause on S top on D estroy - 생명주기 주의 사항 일정시간 동안 장치를 사용하지 않거나 안드로이드가 메모리를 회수해야 한다면 액티비티가 소멸될 수 있다. 메모리 회수가 필요하더라도 절대 실행중인 액티비티를 소멸시키지 않는다. 일시중지(paused), 중단(stopped) 상태의 액티비티만 destroy 됨. (일시중지나 중단의 경우에 onSaveInstanceState(....) 메서드가 호출됨) 일반적으로 onPause와 onSaveInstanceState()가 호출되는 것을 염두해 두고 코드를 작성하면 된다. - 상황에 따른 생명주기 화면을 실행 했을 경우 : C - S - R 뒤로 버튼을 눌러 화면에서 없앨 경우 : P - S - D 홈 버튼을 눌러 화면을 닫았을 경우 : P - S                                                        (에뮬레이터에서는 개발자옵션에서 '액티비티 유지 안함' 옵션을 설정하면 홈 버튼을 눌러도 2번과 같이 종료됨, 실제 장치는 Dev 도구 설치를 해야 사용가능) 3번 이후 recent 버튼을 눌러 다시 앱으로 돌아갈 경우 : S - R 화면을 회전했을 경우 :