본문 바로가기

프로그래밍/Android

최상위 뷰 만들기

 

 

Toast와 같이 최상위에 뷰 띄우기.

 

Toast도 일반적인 뷰처럼 구성하고, 윈도우에 add 하는 구조로 작성되어 있다.

간단히 Toast와 같이 최상위에 뷰를 띄우는 요소들에 대해 정리.

 

1. 레이아웃 구성

Toast는 makeText라는 static 메쏘드를 제공하는데, 간단히 토스트를 띄울 수 있도록한 메쏘드다.

요녀석을 살펴보면, 흔히 사용되는 루틴으로 이루어져 있다.

.

.

LayoutInflater inflater = (LayoutInflater)

context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

 

View v = inflate.inflate( com.android.internal.R.layout.transient_notification, null);

TextView tv = (TextView)v.findViewById( com.android.internal.R.id.message);

tv.setText( text );

.

.

2. 윈도우 레이아웃 설정

WindowManager.LayoutParams mParams = new WindowManager.LayoutParams();

params.height = WindowManager.LayoutParams.WRAP_CONTENT;

params.width = WindowManager.LayoutParams.WRAP_CONTENT;

params.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE

| WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE

| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;

params.format = PixelFormat.TRANSLUCENT;

params.windowAnimations = com.android.internal.R.style.Animation_Toast;

params.type = WindowManager.LayoutParams.TYPE_TOAST;

params.setTitle("Toast");

 

params.x = x위치

params.y = y위치

params.gravity = 정렬

params.verticalMargin

params.horizontalMargin

 

3. 보이기

플랫폼에서는 아래와 같이 윈도우 매니저를 얻어온다.

WindowManager wm = WindowManagerImpl.getDefault();

sdk내에서는 아래와 같이 서비스로 얻어오면 된다.

WindowManager wm = (WindowManager) context.getSystemService( Context.WINDOW_SERVICE );

 

 

wm.addView( v , params );

 

세부 내용은 없지만 대략의 구성은 차이가 없다.

 위의 형태로 뷰를 구성하면, 토스트와 같이 최상위에 뷰를 표시하게 된다.

'프로그래밍 > Android' 카테고리의 다른 글

JSON  (0) 2012.01.31
HTTP POST/GET 몇가지 정리  (0) 2012.01.30
OpenGL es 조명  (0) 2011.12.07
API demos openGL es 2.0  (0) 2011.11.21
GLSurfaceView 배경 투명하게  (1) 2011.11.04
OpenGL 프레임버퍼 사용  (0) 2011.10.27
ADB tcp/usb 연결설정  (0) 2011.10.26
sdk3.0 fragment를 하위버전에서 사용하기  (0) 2011.10.19
SurfaceView/GLSurfaceView  (0) 2011.10.11
Custom layout, layoutinflater  (0) 2011.10.11