달력

9

« 2020/9 »

  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  •  
  •  
  •  
2014. 9. 12. 14:03

Palette 영역 Development/Android

Palette 영역

  • UI를 꾸미기 위한 여러가지 컨트롤이나 위젯등을 가지고 있는 영역으로
  • 마우스로 끌어다 놓으면 UI가 추가됩니다.

   

   

   

   

상단 우측의 삼각형을 클릭하여 팔랫트 에보이는 UI 객체의 표시방법을 변경할수 있습니다

Posted by codedragon codedragon

댓글을 달아 주세요

안드로이드 프로그램 구조

   

   

뷰(View)

뷰(View)는 사용자와 직접 상호작용을 하는 UI를 의미합니다.

   

 

액티비티 (Activity)

  • 하나의 화면을 컨트롤하는 객체로 (어플리케이션의 하나의 화면, 폰 화면)
  • 보통 액티비티와 UI화면은 일대일 대응 관계를 갖고 시스템 혹은 사용자로부터 시작된 이벤트에 반응(처리)합니다.
  • 레이아웃을 포함하며 UI오브젝트를 추가하여 사용할 레이아웃을 정의(화면을 구성)하게 됩니다.

   

   

위젯(Widget)

TexTView, Button, EditText등 사용자의 입력을 받거나 화면에 데이터를 표시해 주는 Object

   

   

레이아웃(Layout)

액티비티들을 어떠한 방식으로 화면에 배치해 줄지를 결정해 주는 하나의 컨테이너 역할

UI오브젝트를 담고 있는 그릇역할.

   

 

인텐트 (Intent)

액티비티간의 통신 수단이며 메시지에 대한 상세한 정보를 가집니다. 예를 들어 주소록 목록 액티비티에서 편집 액티비티를 호출할 때 누구의 주소를 어떤 식으로 편집하라는 지시가 인텐트에 실려 전달됩니다.

   

 

서비스 (Service)

서비스는 주로 백그라운드에서 돌아가는 실행코드로, 일단 실행되면 휴대폰이 꺼질 때까지 돌아갑니다. 서비스는 일반적으로 사용자 인터페이스가 없습니다.

예) MP3 플레이어, 저장기능

 

   

브로드캐스트 리시버(BroadcastReceiver)

만약 애플리케이션이 전화가 오거나 문자메시지 수신과 같은 이벤트 반응시 적절하게 반응하기를 원한다면 반드시 브로드캐스트 리시버로서 등록되어 있어야만 합니다. 신호만 대기할 뿐 UI를 따로 가지지는 않으므로 신호가 오면 적절한 액티비티를 띄워 내용을 전달합니다.

   

 

컨텐트 프로바이더 (Content Provider)

다른 응용 프로그램을 위해 자신의 데이터를 제공합니다. 안드로이드는 보안이 엄격하여 다른 응용프로그램의 데이터를 함부로 액세스 하지 못하도록 되어 있습니다. 응용프로그램 간에 데이터를 공유할 수 있는 합법적인 유일한 장치가 바로 콘텐트 프로바이더입니다.

   

   

사용 가능한 구성 요소 

(1) 데이터 보관

(2) 네트워크

(3) 멀티미디어

(4) GPS

(5) 전화서비스

   

Posted by codedragon codedragon

댓글을 달아 주세요

나라이름으로 드롭다운 리스트 만들기

   

강의 내용

activity_main.xml

RelativeLayout변경

Graphical Layout > Form Widgets-TextView 추가

Graphical Layout > Form Widgets-Spinner 추가

MainActivity.java

implements AdapterView.OnItemSelectedListener

//배열 생성

//View만드는 adapter객체 생성

//드롭다운 화면에 표시할 리소스 지정

//Spinner에 ArrayAdapter를 등록

//이벤트 소스와 이벤트 리스너 연결

//이벤트 핸들러 재정의

-onItemSelected

-onNothingSelected

   

   

   

출력 결과

   

   

   

Posted by codedragon codedragon

댓글을 달아 주세요

컨테이너 종류

구분

설명

LinearLayout

박스 모델, 즉 위젯이나 다른 하위 컨테이너가 가로나 세로 방향으로 하나씩 차례로 정렬되는 레이아웃을 지원합니다..

RelativeLayout

자식 뷰들을 상대적인 관계에 따라 배치됩니다.

FrameLayout

여러 자식 뷰들을 겹쳐서 그리고자 할 때 사용하는 레이아웃. 이 레이아웃은 여러 이미지들을 같은 영역에 표시하고자 할 때 사용합니다.

TableLayout

자식 뷰들을 열과 행으로 조직화된 표 형태로 배치합니다.

GridLayout

격자 모양의 표을 만들 수 있는 레이아웃

   

   

Layout 속성

layout_width

fill model 속성으로 넓이 채우기

layout_height

fill model 속성으로 높이 채우기

orientation

방향 설정

padding

여유공간 설정

weight

공간의 가중치 값 설정

layout_gravity

   

부모 컨테이너의 여유 공간에 있는 뷰를 정렬할 때

gravity

뷰에서 표시하는 내용물을 정렬할 때

   

gravity 속성 값

top

buttom

left

right

center_vertical

center_horizontal

fill_vertical

fill_horizontal

center

fill

clip_vertical

clip_horizontal

  

   

 

margin 과 padding

margin

뷰와 부모 사이에 적용되며 패팅은 뷰와 내용물 사이에 적용됩니다.

padding

뷰와 내용물간의 간격을 지정합니다.

버튼의 경우 버튼 내부의 문장과 버튼 테두리와의 간격이 패딩이며 레아웃의 경우 차일드 뷰와의 간격이 패딩이 됩니다.

 

 

   

   

Posted by codedragon codedragon

댓글을 달아 주세요

 

View

안드로이드 UI의 기본적인 구축 요소.

안드로이드 SDK의 거의 모든 위젯과 레이아웃 클래스의 기반 클래스

   

   

View 클래스의 기본 메소드와 용도 

메서드

용도

setBackgroundColor(int color)

백그라운드 색상 설정

setBackgroundDrawable(Drawable d)

백그라운드 이미지 설정

setMinimumHeight(int minHeight)

최소 높이 설정

setMinimumWidth(int minWidth)

최소 너비 설정

setPadding(int left, int right, int top, int bottom)

여백 사이즈 설정

setClickable(boolean c)

엘리먼트의 클릭 가능 여부 체크

setFocusable(boolean f)

엘리먼트의 포커스 가능 여부 체크

setOnClickListener(OnClickListener l)

클릭 이벤트 발생 여부 체크 설정

setOnFocusChangeListener(OnFocusChangeListener l)

포커스 이벤트 발생 여부 체크 설정

setLayoutParams(ViewGroup.LayoutParams l)

레이아웃 파라미터 설정

   

   

   

TextView

텍스트뷰는 Activity에 테스트(문자열)을 표시하기 위한 뷰이다.

   

TextView 주요 메서드 

메서드

용도

setGravity(int gravity)

중력(위, 아래, 왼쪽, 오른쪽 등) 셋팅

setHeight(int height)

높이 셋팅

setWidth(int width)

넓이 셋팅

setTypeFace(TypeFace face)

서체 셋팅

setText(CharSequence text)

텍스트 셋팅

   

   

XML 레이아웃 파일에 기재되는 주요 속성 

속성

문자열,리소드 ID

의미

android:layout_width

수치와 단위

sp

dp

px

안드로이드에서기본적으로 제공하는 레이아웃들을 사용할 때 항상 지정해야 하는 속성

누락시 오류발생

android:layout_height

수치와 단위

sp

dp

px

안드로이드에서기본적으로 제공하는 레이아웃들을 사용할 때 항상 지정해야 하는 속성

누락시 오류발생

android:typeface

normal

sans

serif

monospace

  

문자열 스타일 지정(문자열 폰트 설정)

안드로이드에서 제공하는 몇개의 내장 폰트를 설정할 수 있습니다.

  

android:textStyle

italic

bold

  

굵은 글꼴(bold), 기울인 글꼴(italic), 굵은 글꼴과 기울인 글꼴(bold_italic)로 할지 지정

| 기호를 통해 여러 개의 속성값 지정( bold|italic )

  

android:textColor

#FF0000 – 빨간색

색깔을 16진수 RGB 포맷으로 지정

android:text

문자열, 리소드ID

텍스트 뷰로 표시하는 텍스트

android:gravity

left, center 등

뷰보다 텍스트가 짧을 때 정렬 위치

android:maxLines

정수값

표시할 최대 행수

android:minLines

정수값

표시할 최소 행수

android:textSize

수치와 단위

sp

dp

px

텍스트의 사이즈를 지정함.

단위에는 sp(스케일된 픽셀수)나 mm(밀리미터)등을 사용할 수 있음

android:cursorVisible

true, false

true의 경우에는 cursor를 표시함

android:password

true, false

true의 경우에는 입력된 문자를 표시하지 않고 패스워드 Dot를 표시함

android:singleLine

true, false

false: 기본값, 여러줄로 표시

android:lineSpacingMultiplier

정수값

줄 간격을 배수로 설정

android:lineSpacingExtra

정수값

줄 간격을 여유값으로 설정

android:capitalize

characters(글자)

words(단어)

sentences(문장)

각 단위로 맨 앞 글자를 대문자로 표시

android:ellipsize

none(기본값, 뒷부분)

start(앞부분)

middle(중간부분)

end(끝부분)

문자열에서 잘라서 표시할 부분을 설정

줄임 표시

android:margin

수치와 단위

위젯과 내용물 사이의 여백

android:layout_margin

수치와 단위

위젯과 부모 컨테이너 사이의 여백

   

   

id속성

선언

@+id/[ID]

참조

R.id.[ID]

   

   

backgroud 속성

색상지정 Format

#RGB

#ARGB

#RRGGBB

#AARRGGBB

이미지 리소스 지정

android:backgroud="@drawable/mainimage"

   

   

여백 속성 도식도

   

   

autoLink 속성 값

텍스트에 문맥 링크 추가

문자열에 들어 있는 링크 정보를 자동으로 찾아 링크 색상으로 표시하고 누르면 필요한 기능을 수행하게 됩니다.

autoLink 속성에 사용할 수 있는 값 (ex : android:autoLink="web|email")

내용

web

텍스트 안의 URL을 링크로 만듭니다.

클릭하면 웹 브라우저가 실행되면서 해당 페이지가 표시됩니다.

email

텍스트 안의 이메일 주소를 링크로 만듭니다.

클릭하면 메일 클라이언트가 실행됩니다.(해당 수신자가 자동으로 입력된 상태로)

phone

텍스트 안의 전화번호를 링크로 만듭니다.

클릭하면 전화 걸기 응용프로그램이 실행됩니다.(해당 번호가 입력된 상태로)

map

텍스트 안의 지리적 주소를 링크로 만듭니다.

클릭하면 Google 지도 응용프로그램이 실행되고 해당 위치정보를 표시해줍니다.

none

자동 링크를 사용하지 않음(기본값)

all

web, email, phone, map을 모두 사용

linksClickable="false" 여러 링크 대상 형식들을 강조해서 표시하되 사용자가 클릭하지는 못 함

   

   

View의 계층도

TAG @+id, aarrggbb, Android, android:capitalize, android:cursorVisible, android:ellipsize, android:gravity, android:layout_height, android:layout_margin, android:layout_width, android:lineSpacingExtra, android:lineSpacingMultiplier, android:margin, android:maxLines, android:minLines, android:password, android:singleLine, android:text, android:textColor, android:textSize, android:textStyle, android:typeface, App, argb, autoLink, backgroud 속성, bold, button, cursor, eclipse, email, google, id속성, italic, java, java programming, JDK, LinearLayout, linksClickable, map, margin, mobile, monospace, object, padding, phone, R.id, rgb, rrggbb, sans, sdk, serif, setBackgroundColor, setBackgroundDrawable, setClickable, setFocusable, setGravity, setHeight, setLayoutParams, setMinimumHeight, setMinimumWidth, setOnClickListener, setOnFocusChangeListener, setPadding, setText, setTypeFace, setWidth, smartphone, SUN, Sun microsystems, TextView, View class, View 계층도, View 클래스, viewgroup, View의 계층도, web, XML 레이아웃, 구글, 너비, 넓이, 높이, 레이아웃, 레이아웃 파라미터, 모바일폰, 문자열 스타일, 문자열 폰트, 백그라운드, 부모 컨테이너, 뷰 계층도, 뷰 클래스, 색상지정, 색상지정 Format, 색상지정 형식, 서체, 셋팅, 스마트폰, 안드로이드, 안드로이드 sdk, , 엘리먼트, 엘리먼트 클릭, 엘리먼트 포커스, 여백, 여백 사이즈, 여백 속성, 여백 속성 도식도, 위젯, 이미지 리소스 지정, 이클립스, 자바, 자바 프로그래밍, 줄 간격, 줄임, 중력, 클릭 이벤트, 텍스트, 텍스트뷰, 포커스, 포커스 이벤트
Posted by codedragon codedragon

댓글을 달아 주세요

용어

설명

뷰(View)

액티비티안에 들어가는 각각의 화면 구성요소

컨트롤과 위젯이라는 이름으로 불리는 UI구성요소

즉, 사용자의 눈에 보이는 화면 구성요소 입니다.

XML레이아웃에 정의된 뷰들은 애플리케이션이 시작될 때 메모리에 객체로 만들어집니다.

프로젝트가 빌드될 때 XML레이아웃에 정의된 정보는 내부적으로 해석되어 자바코드에서 new연산자로 객체를 만드는 것처럼 동일하게 객체를 생성할 수 있습니다. 이렇게 메모리에 객체를 만드는 과정을 인플레이션이라고 합니다.

인플레이션(Inflation)

실행시점에 XML레이아웃 정보를 메모리상의 객체로 만드는 과정

위젯(Widget)

뷰 중에서 컨트롤 역할을 하는 화면 구성 요소

뷰그룹(ViewGroup)

뷰들을 여러 개 포함하고 있는 것

뷰들을 담고 있는 그릇

뷰그룹을 이용해 그 안에 들어있는 뷰들의 위치를 지정

레이아웃(Layout)

뷰그룹 중 자주 사용하는 뷰의 배치 방식을 정의한 것(그 안의 뷰들을 배치하는 역할)

위젯셀(Widget Cell)

위젯이나 뷰가 부모 컨너이너로 부터 할당 받은 공간

패딩(Padding)

뷰안의 내용물과 뷰 외곽선 상의 여백

마진(Margin)

부모 컨테이너의 외곽선과 뷰 사이의 여백

액션 아이템(Action Item)

일반적으로 메뉴는 오버플로우 메뉴 형태(아래쪽에서 표시되는 형태)로 지원되지만 ActionBar에 등록가능하며 이렇게 ActionBar에 등록된 항목

번들(번들 객체)

액티비티간에 데이터를 전달하기 위해 사용

인텐트 안에 들어 있기 때문에 putXXX( )와 getXXX( )를 통해 데이터를 넣거나 얻을 수 있습니다.

 

Posted by codedragon codedragon

댓글을 달아 주세요