fragment란?
안드로이드 3.0에서, 새로 도입된 개념으로, 일종의 다른 형태의 미니 액티비티라고 보면 된다. include를 사용하여, 개발을 할경우, view 즉, UI는 포함 할 수 있지만, function은 사용할 수 없습니다. 하지만, Fragment를 사용하면, UI 및, 기능을 동시에 재사용 할 수 있습니다. 기존의 기능을 재사용하려면, ui를 include하더라도, 기능 코드를 따로 삽입해야 했는데요, Fragment를 이용하면, 이 작업을 간단하고 편리하게 할 수 있다는 것입니다. 왜 이런, 기능이 안드로이드 3.0이 들어서서, 나오게 되었냐면, 기존에 사용하였던 어플리케이션을, 3.0에서 재사용할 수 있게 하는 과정이 필요했기 때문입니다. 기존 작은 해상도에 비해서, 큰 타블렛을 채울때는 다른 레이아..
더보기
안드로이드란?
안드로이드 개발을 업으로 삼고 계속 일하고 있는 시점에서, 이제서야 Android가 무엇인가를 생각한다는게 우습다. 하지만, 난 아직 안드로이드를 너무 모르기에, 정리를 차근차근 해 나가고 있다. 오늘도 역시나, 안드로이드란? 사전에서 찾아보면 뜻은 다음과 같습니다. android – n. a robot with a human appearance. 사람 형상을 한 로봇. 뭔가 난해합니다. 그렇다면, 실제 안드로이드는 무엇일까요? 안드로이드는 구글이 내놓은 리눅스(Ubuntu) 기반의, 모바일을 타겟으로한 운영체제 입니다.(요즘에는, 모바일을 벗어나 다양한 가전기기에도 안드로이드가 탑재되고 있지요,) 2005년 구글은 모바일 사업의 일환으로, Android를 인수했고, 작업을 시작했습니다. 구글의 서비스가..
더보기
안드로이드 키보드 보이기, 숨기기
특정 동작을 했을 때, 소프트 키보드를 보여주고 싶을때에 사용한다. 키보드를 제어하려면 InputMethodManager객체를 사용한다. InputMethodManager는 "android.view.inputmethod"에 존재한다. 이 객체는 activity에서, getSystemService로 구할 수 있으며, 변수는 Context.INPUT_METHOD_SERVICE로 구하여 오면 된다. 키보드를 보여줄때는, public boolean showSoftInput (View view, int flags, ResultReceiver resultReceiver) 를 사용하고, 키보드를 가릴때는, public boolean hideSoftInputFromWindow (IBinder windowToken, i..
더보기
Blank Final 이란?
자바에서 변수를 생성할때, 다음과 같이 생성하지요, private String name; 만약, 변수가 바뀌는걸 원하지 않는다면, 선언부에 final을 적게 되지요, private final String name; 여기서, 용어가 하나 나오는데, Blank Final이라는 것입니다. final 변수를 선언과 동시에 초기화를 해주는 것이 아닌, 생성자에서 초기화를 해주는 것을 말합니다. 즉, private final String name = "멍보"를 하는 대신, 생성자에서 초기화 시켜주는 겁니다. 예로는 다음과 같겠지요, class BlankFinal { private final String name; public BlankFinal(String name){ this.name = name; } } 다음 ..
더보기
스크롤상태를 확인가능한 ScrollView
스크롤뷰에서, 스크롤된 상태를 알수 없을 경우가 있기 때문에, 만든 커스텀 위젯입니다. 현재, HorizontalScrollView를 기준으로 만들었는데, 그냥 ScrollView도 다음과 같이 하시면 바로 적용가능하시겠네요. 스크롤뷰의 위치가 어디에 위치했는가를 알려줍니다. 상태는 세가지가 있습니다. public static enum DIRECTION { LEFT, RIGHT, NONE } 스크롤이 움직이게 되면, 커스텀 위젯의, OnEdgeTouchListener 가 호출되고, 여기서 스크롤 위치를 계산하여 콜백을 날려주게 됩니다. 이때, 위의 DIRECTION상태에 따라서, 원하시는 액션을 취해주시면 됩니다. 만든 방법은, 스크롤 될때마다 computeScroll을 호출하기 때문에, 이때마다 위치를..
더보기