2010년 6월 19일 토요일

Back Key Intercept

기본적으로 안드로이드 에서는 Back Key 를 누르게 되면 Activity Destroy() 함수를 호출하게 된다.

그렇다면 Back Key 에 어떠한 기능을 넣고자 할 때에는 어떻게 해야 할 것인가?

소스에 다음의 코드를 삽입하면 된다.

위의 if 코드에 원하는 코드를 삽입하면 Back Key 를 인터셉트하여 처리할 수 있다.

안드로이드 XmlPullParser

파서의 종류는 여러 개가 있다. 특히 자바에서 많이 쓰이는 DOM 파서와 SAX 파서가 그것인데

안드로이드 에서는 주로 많이 쓰이고 있는 파서가 XmlPullParser 이다. 사용법도 간단하다.

다음과 같은 방법으로 사용하면 된다

.

프로젝트 진행용으로 만든 코드기 때문에 태그부분도 파싱해야 할 경우에는

Case XmlPullParser.START_TAG 부분을 추가해서 코드를 짜면 된다.

액티비티를 투명하게

프로그램을 디자인하다 보면 뒤에 배경을 투명하게 처리하고 싶을 때가 있다.

그럴 경우 onCreate 메소드에 다음과 같은 코드를 추가해주면 된다.

   

getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND, WindowManager.LayoutParams.FLAG_BLUR_BEHIND);

이렇게 추가해주면 다음과 같은 결과를 볼 수 있다.

리스트뷰 활용


리스트뷰 를 사용을 하게 되면 리스트뷰에 나와있는 리스트들을 클릭하면 어떤 반응을 할 지 정해야 한다.

그런 코드를 짜고자 할 때에는 위와 같이 OnListItemClick 메소드를 오버라이드 시켜주면 된다.

알송가사 서버?

진행중인 프로젝트가 알송가사 서버를 사용해야 하기 때문에 어떻게 가사를 정확하게 받아와야 하는지 알아야만 했다.

그린세상님의 BLOG 에서 많은 정보를 얻어 올 수 있었다.

먼저 MP3파일의 구조부터 확인해보자.

MP3 파일의 기본적인 구조는 이러하며 ID3 TAG는 버전이 V1.0, V1.1, V2.0 3가지가 있다.

가사 요청 PACKET 내용

<?xml version='1.0' encoding='UTF-8'?>

<SOAP-ENV:Envelope xmlns:SOAP-ENV='http://www.w3.org/2003/05/soap-envelope' xmlns:SOAP-ENC='http://www.w3.org/2003/05/soap-encoding' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:ns2='ALSongWebServer/Service1Soap' xmlns:ns1='ALSongWebServer' xmlns:ns3='ALSongWebServer/Service1Soap12'>

<SOAP-ENV:Body>

<ns1:GetLyric5>

<ns1:stQuery>

<ns1:strChecksum>

MD5

</ns1:strChecksum>

<ns1:strVersion>1.93</ns1:strVersion>

<ns1:strMACAddress></ns1:strMACAddress>

<ns1:strIPAddress></ns1:strIPAddress>

</ns1:stQuery>

</ns1:GetLyric5>

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>

MD5 값에 들어갈 내용은 MP3파일에서 ID태그 부분을 제외한 순수 음악 데이터부터 163840 바이트를 읽어서 MD5 HASH 처리한 값이 들어가게 된다.