전체 글 (258) 썸네일형 리스트형 Android 유연성 있는 ViewHolder Pattern 얼마전 ListView 포퍼먼스 팁에 관한 블로그 포스팅을 한적이 있다. Adapter에서 View의 재활용과 함께 ViewHolder Pattern으로 findViewById를 View생성 시점에 setTag()를 하여 재활용에 대해 언급 했다. 이 방법은 각 ListView의 ViewItem별로 각각의 ViewHolder를 가지고 있어야 한다. ListView의 아이템별로 서로 다른 디자인이 필요하기에 View의 종류가 달라 질 수 밖에 없기때문에 ViewHolder도 각각 존재 할 수 밖에 없다. 이렇게 static하게 ViewHolder을 가지고 있는것 보다 유연하게 ViewHolder를 생성 할 수 있는 코드를 생성하는 방법에 대해서 알아보자. 아래처럼 Adapter에 static class로 .. Android ViewDragHelper 구글 2013 I/O를 통해서 두개의 새로운 레이아웃이 도입 되었다. 구글뮤직앱을 아래에 붙은 현재 재생중 레이아웃이다. 이 레이아웃을 터치하거나 아래에서 위로 드레그를 하게 되면 전체 화면으로 변하게 된다. YouTube앱 또한 동영상 재생시 Back버튼을 누르게 되면 미니플레이어로 변형되며, 이것을 위쪽으로 드레그 하면 전체 화면으로 돌아가게 되는것을 볼 수있다. 이것은 SinglePaneLayout과 DrawerLayout으로 새로운 개념으로 뷰를 좀더 쉽게 드래그관리를 할 수 있는 ViewDragHelper와 함께 사용하여 만들 수 있다. 아래 예제코드는 Lavienlaurent Blog를 통해 확인 가능하다. ViewDragHelper에 대해 기억해야할 몇가지 -ViewDragHelper.Cal.. 리스트뷰 퍼포먼스 팁 안드로이드의 ListView는 확장성및 성능을 위해 설계된 뷰이다. 일반 View를 기반으로 스크롤처리를 하면 뷰를 inflate할때 상당한 시간과 메모리부족등의 문제가 발생될 것이다. 이러한 문제점을 해결하기위해 ListView를 제공하고 있다. 요즘도 흔하지만 안드로이드 초기 시절 ListView를 스크롤 할때 상당히 끊김이 심한 경우를 볼 수 있었다. (국내 포털 N사앱에서 스크롤시 ANR발생되는 등) 이는 ListView의 구조를 정확하게 이해하지 않고 개발을 했기 때문이다. 그래서 ListView가 어떤 원리로 작동되는지와 어떻게 하면 성능을 최적화해서 좀 더 자연스러운 스크롤을 할 수 있는지에대해 써볼까 한다. ListView의 작동 원리 ListView는 View를 재활용한다. 화면에 보여질.. 안드로이드 디자인 관련 작업 좀더 쉽게 하기 안드로이드는 디자인은 개발에 있어서 또는 디자인에 있어서 많이 복잡하고 까다로운건 사실이다. 다양한 DPI에 맞는 사이즈를 제작해야되며, 디자이너들에게는 생소한 나인패치라는것도 해봐야 한다. 안드로이드 디자인을 처음으로 하거나 아직 미숙한 디자이너들에게 도움될 만한 사이트를 소개하겠다. 안드로이드 SDK에 나인패치 툴이 있긴 하지만 설치하는 번거로움을 피할수 있고, 즉각적인 이미지를 확인 할 수 있다. Simple Nine-patch Generator 이 외에도 얼마전 Navigation Drawer의 표준가이드가 생기면서 이에 맞는 인디케이터 아이콘도 생성할 수도 있다. (Navigation Drawer Indicator Generator) 노티케이션 아이콘도 API11 전후로 표준 가이드가 바꼈는데,.. Fragment 파헤치기 - 3. FragmentManager, FragmentTransaction에 대해서 저번 시간에는 Fragment LifeCycle(기억이 안나시는 분은 다시보고오자.) 에 대해서 알아 보았고, 이번 시간에는 Fragment를 실제 어떻게 Activity에서 작동 시킬 것인지에 대해서 써볼까 한다. Fragment는 레이아웃 xml에서 바로 Add가 가능하고, 코드를 통해서는 FragmentTransaction으로 Add, Remove, Replace를 할 수있다. 레이아웃 xml을 통해 아주 간단하게 Fragment를 Add할 수 있다. 한번 Add된 Fragment를 다른 Fragment로 변경 해야 되는 경우가 있는데, 이때는 FragmentTransaction을 이용해서 Action을 해야한다. FragmentManager fragmentManager = getFragmentMa.. Flat디자인의 핵심 안드로이드 이미지 Blur 효과 내기 요즘 웹이나 모바일 할것 없이 Flat한 디자인이 유행인것 같다. 복잡함을 빼고 최대한 심플하고 단순한 모바일 UI에 가장 잘 맞는게 Flat디자인의 핵심이고, 이부분에 대해서 나는 오래전 부터 생각해왔다. 개발자라서 내가 생각하는 디자인적인 표현이 맞는지 모르겠지만, Flat디자인은 그라데이션 효과나 여러가지 색상을 쓰지 않고 2가지 미만의 체도가낮은 색상을 쓰는것 같다. 안드로이드에 Theme중 Holo라는게 있는데, 이 또한 Flat디자인의 유행을 따라 간게 아닌가 생각된다. 아주 심플하고 단색으로 구성되어 있다. 이렇게 기존 디자인에서 Flat디자인으로 넘어 오면서 개발자는 디자인에 의존성이 약해질 수 있다. 물론 디자이너가 없어도 된다는 것이 아니라, 기본적으로 구성 가는한 디자인을 개발자는 단.. 안드로이드 폰트설치 앱 만들기 폰트가 디자인의 큰 영역을 차지하는것은 사실이다. 같은 웹페이지더라도 폰트하나에 퀄리티가 확실하게 차이난다. 애플이 IOS에 산돌고딕체를 기본으로 탑제한 이유이기도하다. 안드로이드도 마찬가지다. 이번 넥서스7에는 네이버가 만든 나눔고딕을 기본으로 하고있다. 이 처럼 폰트에 따라 디자인이 죽고 산다. 안드로이드는 폰트에 대해 자유자체로 바꿀수 있는 점이 있으며, 삼성 갤럭시 시리즈에는 폰트 변경할 수 있는 설정페이지가 있다. 이외의 폰들이라면 루팅을 하거나 폰트를 바꿔주는 전문적인 앱을 설치 해야된다. 갤럭시 시리즈는 어떤식으로 폰트 설정을 하는 것일까라는 물음과 그 폰트를 설치하기위한 앱은 어떻게 개발하는가에 대한 궁금증이 들었다. 정답은 의외로 쉽다. 정해진 패키지명과 APK내부에 정해진 패턴의 폰트파.. 나눔고딕 웹폰트 무료 호스팅 해주는 곳 블로그를 꾸미다보면 폰트도 자유자제로 바꾸고 싶은 욕심이 들것이다. 폰트도 저작권이 있어서 아무거나 넣기도 힘들다. 네이버에서 나눔서체를 무료로 배포 하고 있기때문에 나눔고딕을 폰트로 쓰면 좋은데, 초보자들에게는 쉽지 않다. 보통 브라우저별로 웹폰트 확장자가 다르기 때문에 브라우저별로 폰트 파일로 만들어서 업로드 한다음 CSS에서 폰트 로드되게 해야 한다. 하지만 이런 나눔고딕 폰트를 무료로 호스팅 해주는 Mobilis가 있기에 아래와 같이 쉽게 구현 할 수 있다. 직접 폰트파일을 업로드 하지 않아도 된다. 그리고 Font-Face 라는 곳을 추천한다. 이곳에도 쉽게 사용할 수 있도록 코드뿐만 아니라, 호스팅도 지원한다. 웹폰트는 사파리는 ttf, 크롬이나 파이어폭스는 woff라는 확장자를 가진다. 아래.. 이전 1 ··· 8 9 10 11 12 13 14 ··· 33 다음