[안드로이드] 토스트(Toast) 로 통보하기
- 프로그래밍 정보
- 2010. 9. 20.
반응형
읽기전에 손가락 한번 클릭~ >_<
고마워요 ~ Chu ~ ♥
안드로이드의 통보하는 방법과 생성에 대한 내용입니다.
토스트로 통보하기
토스트(Toast)는 화면에 표시되는 하나의 메시지로서, 메시지의 양 만큼의 공간을 차지합니다. 또 사용자의 액티비티는 보여지며 상호작용이 가능한 상태로 유지된다는 특징이 있지요.
토스트는 나타났다가 자동으로 사라지고, 토스트 자체는 이벤트를 받지 않습니다.
토스트는 액티비티 또는 서비스로부터 생성되고 표시가 됩니다. 만일 서비스로부터 토스트를 생성하면 현재 포커스된 액티비티 앞에 표시됩니다.
토스트 생성하기
토스트를 생성하기 위해서는 makeText() 메소드로 Toast 객체를 인스턴스화 해야 합니다.
총 2개의 서로다른 메소드가 있습니다.
이 메소드의 3개의 인자가 있는데,
첫번째 인자는 어플리케이션의 컨텍스트이며,
두번째 인자는 텍스트 메시지,
세번째 인자는 Toast가 표시될 길이 값을 나타냅니다.
이 메소드는 Toast 객체를 리턴하고, 이 객체를 사용하여 show() 메소드를 호출하면 토스트를 화면에 표시할 수 있습니다.
예제 소스
약간 소스가 길게 되었네요,
위에서 makeText() 메소드가 Toast 객체를 리턴한다 했기 때문에 show() 메소드가 연결해서 사용하면 Toast객체를 따로 저장하지 않고도 사용할 수 있게 됩니다.
토스트의 위치 변경하기
Toast 는 기본적으로 화면 하단 부분의 가운데 쯤에 표시되는데요, 이 위치를 변경할 수가 있습니다.
위치 변경을 위해선 setGravity(int, int, int) 메소드를 사용해야 합니다.
세 개의 인자는 gravity 상수값, x좌표, y좌표 를 나타냅니다.
그렇다면 토스트를 왼쪽 상단에 표시하고자 한다면 소스는 이런식으로 되겠네요.
결과 화면~
커스텀 토스트 뷰 생성하기
기본 토스트의 모양이 마음에 들지 않는다면 좀 더 이쁘게 꾸민 커스텀 토스트를 생성하여 쓰면 되는데, 우선 XML 또는 소스코드에서 레이아웃을 만들고, setView(View) 메소드로 루트 뷰 객체를 파라미터로 전달하는 방식을 사용합니다.
우선 레이아웃을 만들어야지요.
루트 뷰인 리니어 레이아웃에도 리소스 id 가 지정되었다는 점을 주목하세요.
setView() 메소드에 루트 뷰 객체를 전달해야 되기 때문에, 소스코드에서의 루트인 리니어 레이아웃에 id 를 부여한 것입니다.
그런 다음 소스코드에서 getLayoutInflater() 또는 getSystemService() 메소드를 사용하여 LayoutInflater 객체를 얻어와야 합니다.
그런 뒤, inflater(int, ViewGroup) 메소드로 XML 레이아웃을 전개해야 합니다.
inflater() 메소드의 첫번째 인자는 레이아웃 리소스ID 이며, 두번째는 루트 뷰 입니다.
그 뒤에 적절한 속성을 적용하고 Toast(Context) 라는 public 생성자를 이용하여 새로운 토스트를 만듭니다.
다음으로 여러가지 속성을 지정한 후 setView(View) 메소드를 호출하여 메소드의 인자로 전개된 레이아웃을 넘겨줍니다. 제일 마지막엔 show() 를 호출해야 보여지지요 ^^;
결과 화면 ~
모양이 너무나도 이쁘지 않지만..... -_-
어쨋든 커스텀 토스트도 완성했습니다 ^^;;
다음 포스트에서 상태바를 이용하여 통보하는 것을 포스팅 해보지요~ ㅎ
반응형