분류 전체보기(864)
-
Eclipse에서 SVN 사용하기
Eclipse에서 {Help-Install New Software} 메뉴를 선택하고, http://subclipse.tifris.org/update_1.2.x 를 추가해주면 다음과 같이 Subclipse 플러그인을 설치할 수 있다. Subclipse는 Eclipse와 연동되기 때문에 편리하게 SVN과 연동하여 개발하는 것이 가능하다. 개인적으로 SVN 서버는 VisualSVN을 주로 사용하고, Visual Studio로 개발할 때에는 TortoiseSVN을 클라이언트로 사용한다.
2010.04.05 -
타이머 루프 안에서 UI 명령 호출 시 문제
타이머 루프 안에서 Toast나 showDialog 등의 UI 함수를 호출하면 아무런 오류가 발생하지 않고 그냥 실행이 안된다. 다른 액티비티를 실행시키는 것은 가능하다. 이것 때문에 뻘짓 좀 했다. -_-;;
2010.03.31 -
유용한 이미지 편집 툴, Gimp
프로그램을 개발할 때, 개발자도 간단한 이미지 편집을 해야하거나 이미지 상의 좌표 값을 확인해야하는 일이 종종 있다. 포토샵은 가격도 가격이고 덩치고 큰 편이라서 대부분의 개발자들은 그림판 같은 것을 사용한다. 본인은 예전부터 Paint Shop Pro나 포토샵을 많이 써온 터라 도저히 그림판으로는 작업하는 것이 불편해서 쓸 수가 없다. 이런 경우에 가장 좋은 대안은 바로 "Gimp"이다. 다양한 리눅스 배포판을 설치해서 써보려고 애쓰던 시절 (대학교를 다닐 즈음)에 만났던 Gimp는 도무지 알 수 없는 이미지 편집 툴이었다. 그러나 지금은 iPhone용 어플을 개발하기 위해 맥을 사용할 때나, 포토샵이 없을 경우에 PC에서 개발할 때 유용하게 Gimp를 이용하고 있다. 개인적으로는 어떤 면에서는 포토샵..
2010.03.26 -
안드로이트폰 켤 때마다 자동으로 서비스가 실행되도록 만들기
검색 능력이 떨어진 것인지, 서비스 자동 실행과 관련된 예제를 못찾다가 개발 서적의 샘플 소스에서 찾았다. 같은 정보를 찾고 있는 분들께 조금이나마 도움이 되기를 바라며 정리해둔다. 먼저 메니페스트 파일을 열고 다음과 같이 액티비티 다음에 리시버와 서비스를 추가해준다. 당연히 BOOT_COMPLETED 액션을 받을 수 있도록 퍼미션도 지정해준다. MyServiceReceiver.java 파일을 만들고 다음 내용을 추가해준다. BOOT_COMPLETED 액션이 전달되면 서비스를 시작하도록 코딩한다. public class MyServiceReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent in..
2010.03.25 -
타이머 사용하기
안드로이드에서는 자바에서 제공하는 타이머를 사용하는 것이 좋지 않다고 해서, Handler를 이용하여 타이머와 유사하게 구현을 해야한다. Handler는 지정한 딜레이 타임 이후에 명령을 수행시키는 기능을 가지고 있기 때문에 다음과 같이 코드를 작성해주면 된다. public void runNext() { Handler mHandler = new Handler(); mHandler.postDelayed(new Runnable() { @Override public void run() { //수행할 명령 runNext(); } }, 1000); } 이렇게 하면 1초에 한번씩 지정한 명령을 수행하는 타이머처럼 동작된다. WM이나 iPhone에서처럼 그냥 타이머를 사용하는게 좋은데... 쩝
2010.03.19 -
멀티 터치 처리하기
다행히 좋은 레퍼런스 사이트를 찾아서 금방 해결했다. http://blogs.zdnet.com/Burnette/?p=1847 public boolean onTouchEvent(MotionEvent event) { switch(event.getAction()) { case MotionEvent.ACTION_POINTER_2_DOWN : { float x = event.getX(0) - event.getX(1); float y = event.getY(0) - event.getY(1); oldDistance = FloatMath.sqrt(x * x + y * y); newDistance = 0.0f; if (oldDistance > 10f) { mode = "zoom"; } else { mode = "norm..
2010.03.18