728x90
View 클래스
- 안드로이드 화면에서 실제로 보여지는 것들은 모두 View 클래스 상속을 받음
- 뷰 클래스는 다른 말로 위젯
- 여러 개의 위젯을 담을 수 있는 위젯을 레이아웃
- 레이아웃은 ViewGroup 클래스 아래 존재
UI를 작성하는 두 가지 방법
UI를 작성하는 절차
- 뷰 그룹 생성 : default로 1개의 뷰 그룹이 만들어짐 ( 하나의 화면에 여러 뷰 그룹도 가능 )
- 필요한 뷰(위젯)를 적절한 위치에 추가
- 액티비티 화면으로 설정
XML로 UI 작성
- 비주얼 도구에서의 드래그앤드롭을 톨한 UI -> xml 코드 자동 생성
자바 코드를 통한 UI 작성
- 컨테이너 객체 생성
- 뷰 객체 생성
- Setcontentview 지정
View 클래스의 XML 속성
- id 속성
- id 속성은 모든 위젯의 아이디를 나타냄
- Java 코드에서 위젯에 접근할 때 id 속성에 지정한 아이디 사용
- "@+id/" 형식으로 지정 ( ex. android:id="@+id/name" )
- layout_width, layout_height 속성
- match_parent : 자신의 레이아웃에 폭이나 높이를 맞춤
- wrap_content : 자신의 폭이나 높이를 자신 안의 글자가 들어갈 정도로 설정
* 안드로이드에서 크기를 정할 때 사용하는 단위 *
- px : 화면의 실제 픽셀
- 고해상도 폰은 픽셀의 크기가 작고 저해상도 폰은 픽셀의 크기카 크다
- dp : 화면의 밀도 -> 스마트폰 스펙에 무관한 형태의 크기
- sp : 화면 밀도와 사용자가 지정한 폰트 크기
- pt, mm, in
- background 속성
- 위젯의 색상을 주로 #RRGGBB 값으로 지정
- #과 16진수로 RGB 값 표시
- padding 속성
- 위젯의 경계선으로부터 위젯 안의 요소가 떨어지도록 설정
- layout_margin 속성
- 위젯과 위젯 사이 여유를 두도록 설정
- visibility 속성
- 위젯을 보일 것인지 여부 결정
- visible : 보이는 상태
- invisible : 안보이는 상태 → 공간만 존재
- gone : 안보이는 상태 → 공간도 존재 x
- enabled, clickable 속성
- enabled : 위젯의 동작 여부
- clickable : 클릭이나 터치 가능 여부
- rotation 속성
- 위젯을 회전시켜 출력
- 값은 각도(degree)로 지정
텍스트뷰
- textColor : 글자 색
- textSize : 글자의 크기
- typeface : 글자의 글꼴 -> 값으로 sans, serif, monospace, 디폴트는 normal
- singleLine : 글이 길어 줄이 넘어갈 경우 강제로 한 줄만 출력
- true 일 경우 '...' 표시, false일 경우 두.세줄 표현
버튼
- 일반적인 버튼의 XML 코드
<Button
android:id="@+id/button1"
android:text="확인"/>
- 일반적인 버튼의 Java 코드
Button mybutton; // 버튼 변수 선언
mybutton = (Button)findViewByld(R.id.button1); // 변수에 버튼 위젯 대입
mybutton.setOnClickListener(new View.OnClickListener() {
public void onClick(View V) {
//동작할 내용 코딩
}
});
컴파운드 버튼
Button 클래스의 하위 클래서
- 체크박스 : 선택을 했는가 안했는가 결정
- 라디오버튼 : 여러 개 중 하나만 선택 → 라디오 그룹과 함께 사용
- 스위치, 토글버튼
이미지뷰
- 이미지뷰에 보여줄 그림 파일은 프로젝트의 [res]-[drawable] 에 존재해야함
- 안드로이드에서는 GIF, PNG, JPG 세 가지 이미지 파일 형식만 제공
- 이미지뷰 및 이미지 버튼의 XML 속성
- src : 이미지의 경로
- maxheight/maxweigh : 이미지의 크기 지정
- scaleType : 이미지의 확대/축소 ( fitXY, fitstart, fitend ... )
728x90
'Android Programming' 카테고리의 다른 글
[Mobile Programming] 메뉴 (Menu) (0) | 2021.10.19 |
---|---|
[Mobile Programming] 터치 이벤트 (0) | 2021.10.18 |
[Mobile Programming] 이벤트 처리 실습 (0) | 2021.10.17 |
[Android Programming] 사용자 인터페이스 : 레이아웃 (0) | 2021.10.15 |
[Android Programming] 애플리케이션의 기초 개념 (0) | 2021.10.14 |