View와 ViewGroup
View는 화면상에 유저 인터페이스를 구성합니다.
Button, ImageView, TextView, EditText 등등 기본적인 화면 구성 요소들은 뷰에 포함이 됩니다. 일반적으로 Button, TextView, EditText 등은 모두 View를 상속하여 구현되어 있습니다.
뷰는 Window의 Surface를 이용하여 화면에 그림을 그리는 역할과 Window에 들어온 입력(Touch, Key등)을 어떻게 처리할 것인지에 대한 기능을 구현하고 있는 객체입니다.
쉽게 말해 하나의 화면 단위라고 할 수 있고 이런 View들이 모여 View Group가 됩니다.
View는 일반적으로 콘트롤이나 위젯이라는 이름으로 불리는 UI구성 요소라고 할 수 있습니다. 뷰 그룹은 여러 개의 뷰들을 담고 있는 그릇과 같아서 뷰와 다른 것이라고 할 수 있지만, 뷰 그룹을 상속하면 뷰 그룹도 뷰가 됩니다.
출처 T아카데미 동영상강의(사용시 문제가 있으면 바로 삭제하겠습니다.)
View와 ViewGroup 속성
- 백그라운드 (android:background)
뷰의 배경을 설저합니다.
- Visibility (android:visibility)
뷰를 화면에 보여줄지 말지 선택하게 됩니다 옵션으로는(VISIBLE, INVISIBLE, GONE)가 있습니다.
visible 일 경우 화면에 보여주게 됩니다.
invisible일 경우 화면에 안 보여주지만, View의 크기만큼의 영역은 차지하고 있습니다.
gone일 경우 view가 영역도 차지 하지 않게 합니다.
- Clickable(android:clickable)
view가 touch를 받을 수 있도록 할지 여부를 설정하게 됩니다.
android:clickable="true" 또는 android:clickable="false" 로 사용되어 집니다.
- Foscusable(android:focusable)
View가 focus를 가질 수 있는지 여부를 의미합니다. focus를 가진 다는 뜻은 key event가 발생했을 때 그 값을 받을 수 있는 상태가 되도록 만든다는 의미입니다.
View와 ViewGroup ID속성
고유 식별자 (android:id)
해당 뷰를 유일하게 식별하기 위한 값입니다. xml안에 해당 id값을 문자열로 설정하게 되면 어플리케이션이 컴파일 될때 정수로써 레퍼런스 됩니다.
- Inflation
XML 레이아웃에 정의된 정보를 메모리 상에서 객체로 만드는 객체화 과정을 말합니다.
어플리 케이션이 시작될 때 이 과정을 거쳐 메모리 상에 만들어진 객체들을 참조하기 위해 ID를 지정합니다. - ID속성은 자바 코드 상에서 R.id.[ID]와 같은 형태로 참조합니다.
<Button android:id="@+id/button" android:layout_width=“match_parent" android:layout_height="match_parent" android:text="Layout" />
버튼의 ID를 추가합니다.
public class SampleLayoutActivity extends Activity {
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button button = (Button)findViewById(R.id.button); }
}
버튼의 ID를 참조합니다.
View와 ViewGroup Color를 나타내는 방법
- XML레이아웃에서 색상을 지정할 때는 '#'기호를 앞에 붙인 후, ARGB(A : Alpha, R : RED, G : Green, B : Blue)의 순서대로 색상의 값을 기록합니다.
- 16진수 값을 지정할 때는 여러 가지 포맷을 사용할 수 있습니다.
ex ) #ff0000으로 지정하면 빨간 색이며, #00ff00으로 지정하면 녹색이 됩니다. - 알파 값은 투명도를 조절할 수 있습니다.
출처 T아카데미 동영상강의(사용시 문제가 있으면 바로 삭제하겠습니다.)
- 패딩(android:padding)
뷰와 뷰안에 포함된 뷰의 간격을 설정합니다. 즉 안쪽 여백입니다. padding를 사용하여 상하좌우에 대해 동일한 값을 한번에 지정해 줄수 있으며 paddingTop, paddingBottom, paddingLeft, paddingRight를 사용하여 각각 개별적으로 여백 설정이 가능합니다. - min width, minheight
View가 가질 수 있는 최소 크기를 말합니다. - focus
View가 focus를 갖도록 설정하기 위해서는 requestFocus()를 호출해 주고, focus가 있는지 확인하기 위해서는 isFocused()를 호출해 줍니다. - enable
View가 경우에 따라 사용자 입력을 받을 수 없도록 하기 위해서는 enable속성을 사용합니다. setEnabled()로 View가 동작을 멈추도록 할 수 있습니다. - selected
View가 선택되었는지 나타내기 위해서는 selected속성이 사용됩니다. View가 선택되었다고 설정하고 싶으면 setSelected()를 이용합니다.
View와 ViewGroup LayoutParams속성
- LayoutParams
LayoutParams는 View의 자체의 속성이 아니라 View가 배치되는 Layout에 따라 달라지는 속성입니다.
LayoutParams로 설정된 속성은 View가 아니라 View가 배치된 Layout에서 사용합니다. - layout_width, layout_height
- layout_margin
부모뷰와 자신과의 간격을 설정합니다. 즉 바깥쪽 여백 입니다. layout_margin를 사용하여 상하좌우에 대해 동일한 값을 한번에 지정해 줄수 있으며 layout_marginTop, layout_marginBottom, layout_marginLeft, layout_marginRight를 사용하여 각각 개별적으로 여백 설정이 가능합니다. - layout_gravity
View의 정렬 값을 나타냅니다.
뷰의 폭과 높이를 설정합니다. 미리 정의된 값을 넣을수도 있으며 사용자가 직접 크기를 입력할 수도 있습니다.
- match_parent 부모의 주어진 크기를 다 채운다. - wrap_content 내부에 있는 뷰만큼 크기를 맞춘다.
View와 ViewGroup 크기를 표현하는 방법
px | 픽셀 | 화면 픽셀 |
in | 인치 | 1인치로 된 물리적 길이 |
mm | 밀리미터 | 1밀리미터로 된 물리적 길이 |
em | 텍스트크기 | 글꼴과 상관 없이 동일한 텍스트 크기 표시 |
dp(dip) | 밀도에 따른 크기(밀도 독립적 픽셀) | 160dpi 화면을 기준으로 한 픽셀 |
sp(sip) | 폰트의 가변적 크기(축척 독립적 픽셀) | 가변 글꼴을 기준으로 한 픽셀로 dp와 유사하나 글꼴의 설정에 따라 달라진다. |
'Android' 카테고리의 다른 글
(Layout) RelativeLayout (0) | 2016.05.02 |
---|---|
(Layout) LinearLayout (0) | 2016.04.26 |
(EditText) 키보드 Enter(엔터) 키 변경 (0) | 2016.04.25 |
(EditText) 포커스 이동, 커서 이동 (0) | 2016.04.25 |
(EditText) addTextChangedListener 통해 이벤트 받아오기 (2) | 2016.04.25 |