<script type="text/javascript"><!--
google_ad_client = "ca-pub-1261983873465389";
/* 글 제일 위에 */
google_ad_slot = "2059623354";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>

사용자정의 다이얼로그. 즉, Custom Dialog에 대해 알아보도록 하겠습니다.

말 그대로 다이얼로그의 띄워줄 모양을 개발자가 정한대로 보여줄 수 있는 다이얼로그 입니다.

버튼과 텍스트뷰를 배치한 후 버튼 클릭 시 가운데 화면과 같은 다이얼로그를 띄워줍니다.

다이얼로그의 해당하는 입력란에 입력 후 확인버튼을 클릭하면 그 값을 텍스트뷰에 보여주는 형식의 프로그램입니다.

=============================================

Project Name : CustomDialog

Package Name : kidsbear.customdialog

android version : 2.2 (8)

java version : jdk 1.6

=============================================




1. res > layout > main.xml 파일을 작성합니다.

간단히 버튼과 텍스트뷰 1개씩을 배치하였고, 버튼 클릭 시 mOnClick() 메소드를 호출하도록 설정하였습니다.

2. res > layout > dialoglayout.xml 파일을 생성/작성합니다.

위와 같은 모양의 레이아웃을 작성합니다.

이 레이아웃은 다이얼로그 안에 보여줄 레이아웃입니다.

어려운것은 없으니 자세한 것은 아래 소스를 통해 확인하시기 바랍니다.



3. CustomDialogActivity.java 파일을 작성합니다.

1) 필요한 변수를 전역변수로 설정해 줍니다.



2) onCreate() 메소드입니다.

LayoutInFlater 객체와 텍스트뷰을 참조한 객체를 생성해줍니다.



3) 버튼 클릭 이벤트 발생 시 호출될 mOnClick() 메소드를 작성합니다.

showDialog() 메소드를 통해 다이얼로그를 생성/호출 합니다.



4) onCreateDialog() 메소드를 오버라이딩합니다.

LayoutInflater의 inflate() 메소드를 통해 우리가 만든 dialoglayout 레이아웃을 인플레이트하여 LinearLayout 객체를 생성합니다.

위에서 인플레이트한 레이아웃을 인수로 setView() 메소드를 통해 다이얼로그의 내부로 보이도록 설정합니다.

setView(View v) 메소드는 인수로 View 객체를 받기 때문에 우리가 만들 수 있는 거의 모든 레이아웃을 적용할 수 있습니다.

확인 버튼 클릭 시 LinearLayout의 위젯들을 참조한 후 값을 추출/가공하여 텍스트뷰에 보여주게 됩니다.

http://blog.naver.com/PostView.nhn?blogId=kittoboy&logNo=110133839293

<script type="text/javascript"><!--
google_ad_client = "ca-pub-1261983873465389";
/* 글 아래 */
google_ad_slot = "3536356550";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>

Posted by 90002

치수

XML에서 씨는 치수에 대한 설명입니다. 치수는 측정의 단위라고 할 수 있겠지요. 예를 들면 10px, 2in, 5sp 등등. 아래의 측정 단위가 안드로이드에서 제공됩니다.

dp(==dip)
Density-Independent Pixels(밀도 독립 픽셀). 스크린의 물리적 밀도에 기반을 한 압축적인 단위입니다. 이 단위는 160 dpi(dots per inch) screen에 상대적입니다.
=>즉, 160dpi 스크린에서의 1px이 1dp라고 생각하시면 됩니다. 이름에서 밀도에 독립적이라고 밝힌 것과 같이, 스크린의 dpi가 다른 기계에서도 1dp의 실제 크기는 똑같다고 볼 수 있습니다.

sp
Scale-independent Pixels(배육 독립 픽셀). dp와 비슷합니다만, 사용자의 font size에 비례하게 됩니다. 이것은 font size의 크기로 쓰기를 추천합니다.
=>저는 다른 사이즈들은 대개 dp로 쓰고, 폰트 사이즈만 sp로 씁니다. 사용자가 지정해놓은 font size에 따라서 글자 크기가 변하나 봅니다.

pt
Points-스크린 사이즈의 1/72를 1pt라고 합니다.
=>스크린 사이즈에 비례해서 작업을 할 때 유용하다고 할 수 있습니다.

px
픽셀.

mm
밀리미터

in
인치

XML 작업할 때 항상 단위가 헷갈리더라구요.

특히나 지금 작업하고 있는 앱이 길이 측정 관련 앱이라서 정리가 필요하다고 생각했습니다.

좋은 정보 되시고, 굿 프로그래밍 되시길 바라요!



Dimension


A dimension value defined in XML. A dimension is specified with a number followed by a unit of measure. For example: 10px, 2in, 5sp. The following units of measure are supported by Android:

dp
Density-independent Pixels - An abstract unit that is based on the physical density of the screen. These units are relative to a 160 dpi (dots per inch) screen, on which 1dp is roughly equal to 1px. When running on a higher density screen, the number of pixels used to draw 1dp is scaled up by a factor appropriate for the screen's dpi. Likewise, when on a lower density screen, the number of pixels used for 1dp is scaled down. The ratio of dp-to-pixel will change with the screen density, but not necessarily in direct proportion. Using dp units (instead of px units) is a simple solution to making the view dimensions in your layout resize properly for different screen densities. In other words, it provides consistency for the real-world sizes of your UI elements across different devices.
sp
Scale-independent Pixels - This is like the dp unit, but it is also scaled by the user's font size preference. It is recommend you use this unit when specifying font sizes, so they will be adjusted for both the screen density and the user's preference.
pt
Points - 1/72 of an inch based on the physical size of the screen.
px
Pixels - Corresponds to actual pixels on the screen. This unit of measure is not recommended because the actual representation can vary across devices; each devices may have a different number of pixels per inch and may have more or fewer total pixels available on the screen.
mm
Millimeters - Based on the physical size of the screen.
in
Inches - Based on the physical size of the screen.

출처 : http://developer.android.com/guide/topics/resources/more-resources.html#Dimension

Posted by 90002

블로그 이미지
90002

공지사항

Yesterday1
Today3
Total125,057

최근에 달린 댓글

최근에 받은 트랙백

글 보관함