본문 바로가기
App/Android Studio

Android Studio - 안드로이드 어플리케이션 기본과 UI

by 코젼 2022. 8. 1.
728x90
반응형

2022-08-01(31일차)


💡 시작 화면 - New Project


💡 어플리케이션 구성요소

🔸 Activity (액티비티)
◾ 사용자에게 보여지는 화면이다.
◾ 컴포넌트를 제공한다.

🔸 Service (서비스)
◾ 백그라운드에서 동작되는 것이다.
◾ ex) 네트워크 접속 후 파일을 다운받는 동안 다른 작업을 할 수 있다.

🔸 Broad Cast Receiver (브로드 캐스트 리시버)
◾ 방송 수신자
◾  정보를 전달한 것을 받는다.
◾ ex) 배터리가 없으면 배터리가 없다고 알려준다.
◾ 문자 리시버를 구현하면 문자를 수신할 수 있다.

🔸 Content Provider (컨텐트 프로바이더)
◾ 정보 제공자
◾ A 앱에 있는 정보를 A 앱에 컨텐트 프로바이더를 구현해서 정보를 다른 앱으로 전송할 수 있다.

💡 View (뷰)

◾ 안드로이드 앱의 UI를 구성하는 최소 단위
◾ 사용자 화면을 구성하는 위젯(버튼, 텍스트 뷰 등)의 기본 클래스

◾ 뷰 그룹 --> 레이아웃

🔸 자바
◾ 기능 구현

🔸 xml
◾ 화면 구현
◾ 뷰로 구성된다.

💡 XML

◾ 리소스 파일 (소스파일 외)이다.

◾ 사용자에게 보여지는 화면을 구현한다.
◾ res/layout/activity_main.xml

⭐res 안에 들어가는 파일 명은 숫자, 언더바(_), 소문자만 가능하다. 대문자는 불가능하다.


◾ xml 파일 생성
◾ New - XML - Layout XML File


◾ xml파일은 Code, Split, Design으로 이루어져있다.


◾ Code

◾ Split

◾ Design


◾ TextView를 생성한다.

◾ TextView 안의 text속성을 이용해서 문자열을 입력한다.

◾ layout_width, layout_height는 각각 wrap_content로 설정한다.

⭐ 화면에 표시하기 위해서는 MainActivity에서 serContentView를 수정해야한다.

기존 파일
수정


💡 layout_width, layout_height

match_parent 부모 창에 가득 차게 그려진다
fill_parent fill_parent와 동일
wrap_content 뷰가 포함하고 있는 컨텐츠를 감쌀만한 크기로 그려진다. (그 길이만큼)
숫자로 지정된 값 10dp, 20px와 같이 크기와 단위로 지정한다.
단위로는 px, dp, sp, in, mm 사용가능하며 density_independent pixel인 dp를 권장한다.

◾ text의 가로, 세로 크기를 정확하게 확인하기 위해서는 background 속성을 이용한다.


◾ 이 <TextView>에 대해 id를 설정할 수 있다.


💡 예제

📃<TextView> 예제

◾ orientation 속성을 이용하여 vertical(수직)로 배치할 것인지, horizontal(수평)로 배치할 것인지 정한다.

◾ paddingTop 속성으로 상위에 20dp만큼의 여백을 줄 수 있다.

android:paddingTop="20dp"


◾ 텍스트를 직접 지정하는 것이 아니라 strings.xml을 이용해 지정할 수도 있다.

◾ res폴더의 strings.xml파일을 사용하는 것이다.

<string name="app_name">My Application</string>
android:text="@string/app_name"


◾ 추가해서 사용할 수 있다.

<resources>
    <string name="app_name">My Application</string>
    <string name="mytext">Hello World</string>
</resources>

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#459945"
        android:gravity="center"
        android:text="@string/app_name"
        android:textColor="@color/white"
        android:textSize="100dp"
        android:paddingTop="20dp"/>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#ff4545"
        android:gravity="center"
        android:text="@string/mytext"
        android:textColor="@color/white"
        android:textSize="100dp" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#0099ff"
        android:gravity="center"
        android:text="3번 뷰"
        android:textColor="@color/white"
        android:textSize="100dp" />

</LinearLayout>

📃gravity 속성 사용하기

◾ 기본 값은 top | left 이다.

width, height를 숫자로 지정할 수 있다.

android:gravity="center"

gravity를 사용하게 되면 중간으로 오게 된다.


android:gravity="center_horizontal"

center_horizontal을 하게 되면 수평이므로 기본 값인 top은 유지, left가 center로 바뀌게 된다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:text="안녕"
        android:textSize="50dp"
        android:background="#45ff45"
        android:gravity="center_horizontal"
        />

</LinearLayout>

layout_gravity는 뷰 자체를 움직일 수 있다.

android:layout_gravity="right"


📃<TextView>를 이용하여 다음과 같은 화면을 만드세요.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="Hello World!"
        android:textSize="40dp"
        android:background="#45ff45"
        android:gravity="center"
        android:layout_margin="20dp"
        />

</LinearLayout>

 

728x90
반응형

'App > Android Studio' 카테고리의 다른 글

Android Studio - GridLayout  (0) 2022.08.02
Android Studio - RelativeLayout  (0) 2022.08.02
Android Studio - LinearLayout  (0) 2022.08.02
Android Studio - xml과 자바  (0) 2022.08.02
Android Studio - 애뮬레이터 설치 및 Button 태그  (0) 2022.08.01

댓글