이거슨 심심풀이 프로젝트 ? - Geng's Minihome

Developed Program/Android 2010. 11. 12. 15:04


2010년도 11월 프로젝트 - " Geng's Minihome "
개발 기간 - 3일~일주일이내
사용 플랫폼 - Android OS
사용 단말기 - Google Nexus One


코딩을 할때마다 포스팅을 하고 싶어지는 놀레, 갱입니다.

이번 어플리케이션..(이래봤자 역시 마켓에 올리진 않습니다.) 은 역시 제 개인 만족을 위한..
어플리케이션입니다. 역시 서버접속이 필요해서 공개하기엔 번거로운 프로그램이죠 ..

이번에도 접속하는 서버는 제 개인 컴퓨터입니다.
나중에 정말로 상용 프로그램을 만들게 되면 이런 개인 컴퓨터를 돌리면 안되겟죠 . .

쨋건 .

요거는 소속된 동아리에서 상품 걸어서 열심히 하려다가 일부 소속원은 수상 제외라해서 푸시시식 식어버린 프로그램 입니다.

미니홈피인데요 .
나름 비주얼에 신경쓴다고 했는데 연구실 오빠들이 상품이 없어져서 우락부락 화냈다가 다시 개인 공부용으로 열심히 수정하고 있어서 비주얼 쪽에서도 이제 좀 밀리지 않나 싶은.. 저도 수정하고 싶지만 마음을 다잡고
제 개인적인 다른 프로젝트로 마음을 돌리려 하고잇습니다 ㅋㅋ


이건 구조가 좀 독특합니다.
서버의 DB와 어플리케이션이 소통할 수 있도록 매개체 선택에 있어서..
이전 서버는 자바로 구현했었는데 , 이번엔 좀더 편하게 ^^ 훨씬 안정적이더군요.

그리고 미니홈피인만큼 프로필이나 .. 메인 화면 설정값들.. 서버가 저장할 수 있도록 서버로 업로드 감행했습니다.
요건 나름 공부가 됐네요.

나머지는 인터페이스적 구현이라 , 글쎄요 . 말 그대로 재미삼아.
새로운 인터페이스를 이용해봤다 정도.
이미지 버튼이나 탭뷰, 스피너가 그 예네요 ㅋ


백문이 불여일견. 



요거는 로그인 ㅋ 로그인은 서버 DB 체크, 비밀번호와 아이디가 일치할때만 메인홈으로 이동합니다.
여기서 홈을 불러들일때 3개의 탭 컨텐츠들을 초기화해주는데 이때 역시 서버에서 확인,
저장되어있는 메인화면과 프로필을 불러옵니다.



앞선 이미지에 보이는 다이얼로그 메시지 확인 누르면 녹색버튼 NewPhoto가 보입니다.
클릭하면 갤러리로 진입해 이미지를 받아옵니다.
이미지를 받아오고 나서, 홈에 뿌려줍니다.
이때에 서버에 업로드도 함께 수행합니다.



이건 프로필 페이지와 친구 목록 스피너. 친구목록에서 친구를 선택하면 해당 홈페이지로 이동합니다



친구홈페이지를 구경할 수 있습니다. 역시 서버에서 받아오는 정보들이겠죠 ?


그리고 마지막으로 방명록. 서버 DB에서 해당 홈페이지의 주인에게 쓴글만 보여지겠죠.

'Developed Program > Android' 카테고리의 다른 글

직접 개발한 프로그램 - 친구 위치 찾기  (18) 2010.10.23

Android 개발 Tip - 5. GestureListener

Mobile Programming/Android Tip 2010. 11. 11. 18:17

더블클릭 입력을 받을때는 어떻게 해야할까 ?

OnTouchEvent로 Down이 발생했을때 타이머를 봐서 몇초안에 다시 눌리면 ...
아아. 생각만해도 현기증난다.

안드로이드는 꽤나 세심하게 더블클릭에 대한 리스너도 만들어 두었다.

바로 GestureListener가 그것.

java 소스에서 GestureDetector.SimpleOnGestureListener 를 상속한 리스너 클래스를 만들고
GestureDetector 형 객체 선언,
해당 객체를 사용한 클래스의 생성자부분에서 new GestureDetector(context,new GestureListener());를 호출해준다.
그 객체의 리스너를 포함한 정보를 제공하는 문장으로 보인다 ^^

이제 GestureDetector를 등록한 해당 클래스에서 더블클릭이 발생했을때 GestureListener클래스로 자동 호출이되고,
그 클래스내의 오버라이딩 함수로 이벤트가 전달된다.

class GestureListener extends GestureDetector.SimpleOnGestureListener{
		
		AnimationDrawable ani;
        @Override
        public boolean onDoubleTap(MotionEvent e) {
            // doubletap이 발생할때 할일.
        }
}


GestureDetector mGesture;
mGesture = new GestureDetector(context,new GestureListener());

if(mGesture.onTouchEvent(event))
      return true;

Android 입문자를 위한 Tutorial - 7. 탭뷰의 이용

Mobile Programming/Android 2010. 11. 10. 18:49

프로젝트하면서 이용했던 탭뷴데 , 다시 정리해둬야 할 것 같아서!

탭뷰는 조금 조잡하다 .
XML에서 탭뷰의 구성요소는 크게 3가지.
<TabHost>, <TabWidget> , <Layout>이다.

TabHost는 Tab을 보유한 레이아웃이며 ,
TabWidget은 흔히들 생각하는 탭,
Layout은 탭에따라 전환되는 "뷰"이다.
보통 전환할 수 있도록 FrameLayout안에 Linear등의 일반 레이아웃을 배치하는 것이 일반적이다.

Java에서 탭뷰 연결방법은 다음과 같다.

1. TabHost를 얻어온다 (findViewById)
2. Host의 setup함수 호출 ( 탭들을 add하기 위한 준비작업 )
3. Host의 newTabSpec을 통해 탭메뉴들을 생성.
4. TabSpec.setIndicater로 탭에 표시될 내용 지정
5. setContent로 XML에서 선언한 전환 뷰 지정
6. Host에 add
7. 3~6을 원하는 탭 메뉴 수만큼 추가
8. setCurrentTab으로 처음 탭뷰 진입했을때의 화면 지정.

탭뷰의 높이 또한 지정 가능하다.
모두 추가한뒤(7)에


for(int tab = 0; tab < tab_host.getTabWidget().getChildCount(); ++tab){
			tab_host.getTabWidget().getChildAt(tab).getLayoutParams().height= 50;
		}

와 같이 for문을 작성하면 해당 height가 변경된다.

다음은 위에서 설명한 과정의 Java 소스 예이다.
TabHost tab_host = (TabHost)findViewById(R.id.tab_host);
		tab_host.setup();
		
		
		TabSpec ts1 = tab_host.newTabSpec("TAB_HOME");
		ts1.setIndicator("home");
		ts1.setContent(R.id.home);
		tab_host.addTab(ts1);



다음은 XML코드의 일부분이다. 

여기서 전환뷰의 아이디로 home이라고 지정했기때문에 setcontent에서 home으로 지정이 가능하다.
;; 사진은 우리 캠퍼스의 상징물. 암튼 탭뷰만을 보실때 실행화면은 다음과 같다.