'안드로이드 제스쳐'에 해당되는 글 1건

  1. 2010.01.12 Day 5 : Gesture Test
Android2010. 1. 12. 10:25

 테트리스 게임을 한번 만들어보고자 키 입력이 아닌 터치를 이용해 테트리스의 조각을 이동시키고 변형 시켜 보려고 제스쳐동작에 대한 기능을 알아보았으나 정보가 많지 않았다 나의 검색신공은 구글 안드로이드 홈피에서 제공하는 소스와 샘플 소스. 하지만 여간 알아먹질 못하것고 내가 필요한 기능만 추려서 간단히 알아보고자 기존 샘플 소스에서 변형시켜 만들어 보았다.

 

 이 소스의 기능은 제스쳐 이름을 입력 받고 제스쳐 오버레이에 동작된 제스쳐를 ADD를 시켜 추가 시키고 TEST  버튼을 눌러 ADD시킨 제스쳐 동작이 제대로 작동하는지만 알아보는 테스트 이다.

 

초기화면)

초기 화면에서 제스쳐 동작을 취해 ADD버튼을 눌렀을때의 화면.

 

 

TEST 화면)

ADD시킨 제스쳐를 취하면 해당 제스쳐의 입력했던 이름이 출력되게 하였다.


 하지만 정작 만들어놓고 보니 내가 테트리스 게임을 터치형식의 게임으로 만들 때 구지 필요하지 않을 것 같다. 게임의 하단 부분에 터치반응 사각영역을 넣고 터치가 입력된 곳과 끝난곳의 위치를 계산하여 테트리스 블록을 드랍시키는 형식으로도 충분히 가능할 것 같기 때문이다. 그래도 제스쳐란 기능에 대해서 알아 볼 수 있어 매우 유용했단 생각이든다.

  만들 때 해결 못한 부분이 있는데 제스쳐를 ADD 시킬때 파일을 만들어 그 안에 제스쳐의 이름과 동작을 저장하는데 a라는 이름의 제스쳐를 ADD시킨 후 새로운 b라는 이름의 제스쳐를 등록시키면 TEST해보면 제일 나중에 등록된 b라는 이름의 제스쳐 밖에 동작을 안하게 된다. 이건 더 공부해야할 문제인듯 하다.



제스쳐 등록시키기

    public void addGesture() {
        final EditText gName = (EditText) findViewById(R.id.et_name);	//제스쳐 이름 입력창
        final CharSequence name = gName.getText();						//제스쳐 이름 가져오기
		try {
	        if (name.length() == 0) {//제스쳐 이름의 길이가 0 이면 에러메세지를 보여준다.
	            Toast.makeText(this, "You must enter a name", Toast.LENGTH_LONG).show();
	            return;
	        }
	        GestureLibrary gLib = GestureLibraries.fromPrivateFile(this, "myGesture");
        	gLib.addGesture(name.toString(), mGesture);
	        gLib.save();
		} catch (Exception e) {
	        Log.e("Failure","Gesture no save");
		}
        Toast.makeText(this, name+" saved", Toast.LENGTH_LONG).show();
    }



사용된 제스쳐 오버레이

    


    





소스 저장



'Android' 카테고리의 다른 글

안드로이드 에뮬레이터 한글 설정  (0) 2010.01.20
우연치 않게...  (0) 2010.01.18
Day 4 : onTouchEvent 테스트  (0) 2009.12.31
Day 4 : 이미지 그려주기 테스트  (0) 2009.12.31
Day 4 : 2D 를 표현하기 위한 기본 코드  (0) 2009.12.31
Posted by ™설야