안드로이드 --2. UI 기본
A> view 의 기초 속성
지정한 id 의 값은 R.java 에 등록이 된다.
xml에서 등록한 id 값은 findViewById(R.id.id이름) 으로 획득 가능하다.
1.R.java
R의 내부에 id는 public static final 형태로 저장되어 있다.
B> 기본속성
visibility : invisible 은 위치는 차지한다. 공간마저 없애려면 gone 으로 한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
--자바 파일에서 사용 예시
public void onClick(View v) {
if(v == trueBtn){
targetBtn.setVisibiltiy(View.VISIBLE);
}else if(v ==falseBtn){
targetBtn.setVisibiltiy(View.INVISIBLE);
}
}
|
cs |
C> 뷰의 종류
a>TextView
속성
-- text =글
-- typeface = 폰트
-- autoLink = url 자동 출력
-- maxLines = 특정 줄만큼 출력
-- eppipsize =줄임 표시 / 속성값 = end , start middle
b>ImageView
속성
-- src
-- adjustViewBounds = 이미지 크기 변경시의 가로세로 비율 유지 여부 / 속성값 = true , false
-- tint = 이미지 위에 다른 색 입힐 때
c> EditText
사용자에게 데이터 입력받을때 사용
개행시 자동으로 입력 창 늘어남
속성
-- lines =특정 줄만큼 보이게 할때
--maxLines = 최대 늘어나는 라인 수 지정, 처음에는 한줄 입력 크기
-- inputType = 키보드 모드 제어 / 속성값 = phone, number, textEmailaddress
-- gravity = 글 위치 조정
d> Button
하위 클래스로 CheckBox, RadioButton, ToggleButton 존재
CompoundButton 을 상속하는 클래스이다.
CompoundButton.OnChekcedChangeListener() 를 반드시 구현해야 한다.
-- CheckBox
속성
-- isChecked() 체크 되있는지 반환
D> LayOut
1.Linear layout
-- 속성
gravity : 뷰 내용을 뷰 영역 내부에서 어디에 배치할 것인지
layout_gravity : 뷰를 linear layout 영역에서 어디에 배치할 것인가.
weight: 비중
2.Relative layout
화면에 배치된 뷰를 기준으로 다른 뷰의 위치를 지정
--속성
layout_above = "기준 아이디": 기준 뷰의 윗부분에 배치
layout_below ="기준 아이디": 기준 뷰의 아래에 배치
layout_toLeftOf = "기준 아이디" : 기준 뷰의 좌측에 배치
layout_toRightOf = "기준 아이디": 기준 뷰의 오른쪽에 배치
align : 기준 뷰에 맞춰서 정렬
alignParentXXX : 부모쪽으로 상하좌우로 밀 수 있는 속성
==부모쪽으로 붙는다.
3.Framelayout
뷰들을 하나의 영역에 겹쳐서 구성
a> Tab
xml에선 TabHost 내에서 탭 구성
4.tablelayout
xml에서는
tablelayout 내에서 tablerow 로 행 정의
속성
android:shrinkColumns=”0,1”: 화면 크기를 벗어나는 경우 인덱스 0, 1의 열 크기를 줄임
android:stretchColumns=”1": 화면 여백이 발생하는 경우 인덱스 1의 열 크기를 늘림
android:layout_column=”1”: 뷰의 위치 지정, 인덱스 1의 위치에 뷰가 위치
android:layout_span=”2”: 두 개의 열을 하나의 뷰가 차지
5.gridLayout
뷰를 테이블 구조로 나열한다.
rowCount 로 행을 조절한다.
속성
-- orientation: 뷰의 배치 방향을 지정. 기본값은 가로 방향
-- columnCount: 가로 방향일 때 한 줄에 몇 개의 뷰를 나열할 것인지 지정
-- rowCount : 세로 방향일 때 한 줄에 몇 개의 뷰를 나열할 것인지 지정
-- layout_column: 뷰가 위치할 열 인덱스 지정
-- layout_row: 뷰가 위치할 행 인덱스 지정
-- layout_columnSpan: 가로 방향으로 여러 열을 하나의 뷰가 차지하고자 할 때
-- layout_rowSpan : 세로 방향으로 여러 행을 하나의 뷰가 차지하고자 할 때
-- layout_gravity : 하나의 열 내에서 뷰의 정렬 위치 지정
6.constraintLayout
상대적 위치 지정
속성
-- margin : 여백 조정
-- bias : 치우침 조정
-- ratio : view의 크기 비율 조정