별의 공부 블로그 🧑🏻‍💻
728x90
728x170

1. 뷰(View) : 일반적으로 컨트롤이나 위젯이라는 이름으로 불리는 UI 구성 요소

2. 뷰그룹(ViewGroup) : 이러한 뷰들을 여러 개 포함하고 있는 것

3. 위젯(Widget) : 뷰 중에서 일반적인 컨트롤의 역할을 하고 있는 것

4. 레이아웃(Layout) : 뷰그룹 중에서 내부에 뷰들을 포함하고 있으면서 그것들을 배치하는 역할을 하는 것

 

*자주 사용되는 대표적인 뷰의 속성

 속성

설명 

 layout_width, layout_height

뷰의 폭과 높이를 설정합니다. 

 id

뷰의 ID를 지정합니다. 

 background

뷰의 배경을 설정합니다. 

 

 

1) layout_width, layout_height

① match_parent : 무조건 남아 있는 여유 공간을 채움.

② wrap_content : 뷰에 드어 있는 내용물의 크기에 따라 뷰의 크기를 결정

③ 정수값 : 크기를 고정된 값으로 만들고 싶을 때 사용

 

*프로요(2.2) 버전부터는 fill_parent 속성이 아니라 match_parent 속성을 사용함.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >
 
    <Button
        android:id="@+id/button01"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="Button01"
        />
 

 

</LinearLayout>
cs

 

*뷰의 크기를 정수값으로 지정하는 경우

 

 단위

단위 표현 

설명 

 px

 픽셀

 화면 픽셀

 dp 또는 dip

 밀도 독립적 픽셀

(density independent pixel)

 160dip 화면을 기준으로 한 픽셀

예) 1인치 당 160개의 점이 있는 디스플레이 1dp는 1px와 같음. 1인치 당 320개의 점이 있는 디스플레이 화면에서 1dp는 2px와 같음.

 sp 또는 sip

 축척 독립적 픽셀

(scale independent pixel)

 가변 글꼴을 기준으로 한 픽셀로 dp와 유사하나 글꼴의 설정에 따라 달라짐

 in

 인치

 1인치로 된 물리적 길이

 mm

 밀리미터

 1밀리미터로 된 물리적 길이

 em

 텍스트 크기

 글꼴과 상관없이 동일한 텍스트 크기 표시

 

- 이 단위들은 뷰의 크뿐만 아니라 텍스트의 크기를 지정하는 데도 사용됨.

- 특히 'sp' 또는 'sip'는 글꼴을 기준으로 한 텍스트 크기를 나타내므로 뷰의 크기에는 사용되지 않음.

- 뷰의 크기를 해상도에 비례하여 비슷한 크기로 보이게 하려면 'dp'나 'dip'를 단위로 사용할 수 있음.

- 마켓에 올리는 실제 앱의 화면을 구성할 때는 'dp' 단위를 주로 사용하게 됨.

 

2) ID

- 인플레이션(Inflation) : 눈에 보이지는 않지만 프로젝트 파일이 빌드될 때 XML 레이아웃에 정의된 정보는 내부적으로 해석되어 자바 코드에서 new 연산자로 객체를 만드는 것처럼 동일하게 객체를 만들게 됨. → 메모리에 객체로 만드는 객체화 과정.

- 자바 코드에서는 메모리의 어느 위치에 객체가 만들어져 있는지 알 수 없으므로 ID를 지정한 후 이 ID를 이용해 자바 코드에서 객체를 찾아냄.

- XML 레이아웃에 정의된 뷰의 id 속성은 자바 코드 상에서 참조될 수 있으며 R.id.[ID]와 같은 형태로 참조함.

- ID는 각 뷰 객체의 메모리 상 포인터와 같은 개념으로 생각할 수 있는데 이 때 XML 레이아웃에서 사용하는 형식은 '@+id/...'가 됨. (+기호는 새로운 ID를 추가하는 의미로 사용되지만 복잡하게 생각할 것 없이 사용자가 새로 정의하는 뷰의 ID 값은 항상 이런 형식을 사용한다고 생각해도 무방함)

- 나중에 ID 값을 참조할 경우에는 '@id/...' 형식으로 참조할 수도 있음.

 

1
2
3
4
5
6
7
8
9
10
11
12
public void onButton1Clicked(View v) {
        setContentView(R.layout.linear_layout);
 
        Button button1 = (Button) findViewById(R.id.button01);
        button1.setOnClickListener(new View.OnClickListener() {
 
            @Override
            public void onClick(View v) {
                Toast.makeText(getApplicationContext(), "버튼이 클릭되었습니다.", Toast.LENGTH_LONG).show();
            }
 
        });
cs

 

3) background

- XML 레이아웃에서 색상을 지정할 때는 '#'기호를 앞에 붙인 후 ARGM(A: Alpha, R: Red, G: Green, B: Blue)의 순서대로 색상의 값을 기록함.

- 16진수 값을 지정할 때는 여러 가지 포맷을 사용할 수 있는데 색상을 기록하는 방법은 다음과 같음.

[Format]

 

#RGB

#ARGB

#RRGGBB

#AARRGGBB 

 

예)

#ff0000 : 빨간색

#00ff00 : 녹색

#ffff0000 : 빨간색

#88ff0000 : 반투명 빨간색

#00ff0000 : 투명색

 

출처 : Do It! 안드로이드 앱 프로그래밍 (정재곤 지음, 이지스퍼블리싱)

728x90
그리드형(광고전용)

'Programming > Android' 카테고리의 다른 글

스크롤뷰  (0) 2017.01.17
테이블 레이아웃  (0) 2017.01.17
상대 레이아웃  (0) 2017.01.17
리니어 레이아웃  (0) 2017.01.16
레이아웃  (0) 2017.01.16
인텐트와 데이터 전달  (0) 2017.01.08
화면 구성과 화면 간 이동  (0) 2016.12.25
[안드로이드] 안드로이드에서 제공하는 대표적인 레이아웃  (0) 2016.12.20
⚠️AdBlock이 감지되었습니다. 원할한 페이지 표시를 위해 AdBlock을 꺼주세요.⚠️
starrykss
starrykss
별의 공부 블로그 🧑🏻‍💻


📖 Contents 📖