TOP
본문 바로가기
📚 목차
[Java]/Java Android

[Android] 안드로이드 위젯(widget)

by 기록자_Recordian 2025. 4. 28.
728x90
반응형
이전 내용
 

[Android] Android Studio 다운 받기

자바 안드로이드란? 자바(Java)는 안드로이드 애플리케이션 개발에 가장 널리 사용되는 프로그래밍 언어 중 하나이다. 자바를 사용하여 안드로이드 앱을 개발함으로써, 많은 개발자들이 안정적

puppy-foot-it.tistory.com


안드로이드 위젯

 

안드로이드 애플리케이션은 하나 이상의 액티비티가 모여 구성되며, 각각의 액티비티는 하나의 앱 화면을 담당하며, 이 액티비티들은 다양한 위젯으로 구성된다.

위젯은 안드로이드 애플리케이션 화면을 구성하는 사용자 인터페이스 요소로, 홈 화면 맞춤설정의 필수적인 부분이다. 위젯은 사용자의 홈 화면에서 바로 액세스할 수 있는 앱의 가장 중요한 데이터와 기능을 '한눈에 보기' 뷰로 간주할 수 있다. 사용자는 홈 화면 패널 간에 위젯을 이동할 수 있으며 지원되는 경우 위젯의 크기를 조절하여 위젯의 정보량을 원하는 대로 조정할 수 있다.


위젯 유형

 

안드로이드에서는 버튼, 텍스트 뷰, 에디트 텍스트, 체크박스, 라디오 버튼, 토글 버튼, 이미지 뷰, 이미지 버튼 등 다양한 위젯을 제공한다.

 

[주요 안드로이드 위젯]

1. Button: 사용자가 클릭할 수 있는 버튼으로, 특정 작업을 실행하도록 유도.
2. TextView: 화면에 텍스트를 표시하는 위젯으로, 정보나 메시지를 사용자에게 전달.
3. EditText: 사용자로부터 텍스트 입력을 받기 위한 필드로, 사용자 로그인 정보나 메시지 입력 등을 받는다.
4. ImageView: 이미지를 표시하기 위한 위젯으로, 앱의 비주얼을 강화하거나 특정 정보를 나타낸다.
5. CheckBox: 두 가지 상태(체크됨/체크되지 않음)를 선택할 수 있는 위젯으로, 여러 옵션 중 하나 이상의 선택을 허용한다.
6. RadioButton: 여러 옵션 중 하나를 선택하도록 하는 버튼으로, 같은 그룹에서 하나의 옵션만 선택하게 한다.
7. Spinner: 드롭다운 목록으로 여러 선택 옵션을 제공하며, 사용자가 간편하게 선택할 수 있도록 돕는다.
8. ProgressBar: 작업의 진행 상태를 표시하는 위젯으로, 작업의 완료 여부나 진행률을 사용자에게 나타낸다.
9. SeekBar: 슬라이더 형태로 범위 값을 선택할 수 있는 위젯으로, 볼륨 조절, 밝기 조절 등 연속적인 값을 선택하는 데 사용된다.
10. Switch: 상태를 켜거나 끌 수 있는 토글 스위치로, 설정의 활성화 또는 비활성화를 쉽게 전환할 수 있다.
11. ListView: 스크롤 가능한 목록을 나타내는 위젯으로, 항목 리스트를 쉽게 표시하고 선택할 수 있게 한다.
12. RecyclerView: 효율적인 스크롤 목록 및 그리드를 표시하는 위젯으로, 대량의 데이터를 효율적으로 표시하고 관리.
13. WebView: 앱 내에서 웹 페이지를 표시할 수 있는 위젯으로, 웹 기반 콘텐츠를 보여주거나 외부 웹 페이지를 표시하는 데 사용.
14. DatePicker: 사용자가 날짜를 선택할 수 있도록 하는 위젯으로, 날짜 입력을 요구하는 경우에 활용.
15. TimePicker: 사용자가 시간을 선택할 수 있는 위젯으로, 특정 시간 입력을 요구하는 경우에 사용.
16. AutoCompleteTextView: 사용자의 입력에 따라 자동 완성 제안을 제공하는 텍스트 필드로, 편리한 입력을 돕는다.
17. CardView: 내장된 그림자와 모서리 곡률이 있는 카드 형태의 레이아웃으로, 콘텐츠를 그룹화하여 시각적으로 매력적으로 표시.
18. ConstraintLayout: 복잡한 UI 레이아웃을 효율적으로 구성할 수 있도록 도와주는 레이아웃으로, 뷰 간의 제약 조건을 설정하여 유연한 레이아웃 구성 가능.
19. ScrollView: 내부 콘텐츠가 스크롤 가능한 뷰를 제공하여 긴 내용을 쉽게 표시.
20. Toast: 사용자에게 짧은 메시지를 표시하는 팝업으로, 간단한 피드백이나 결과를 잠시 보여준다.

 


위젯 생성 방법

 

프로젝트에 위젯을 생성하는 방법

  • 위젯 생성을 위한 레이아웃 생성 ▶ xml로 작성 (선언적 접근) 또는 액티비티 파일에서 메소드 호출(프로그래밍 접근)
  • 생성한 레이아웃에 원하는 위젯 배치
  • 액티비티에 레이아웃 설정

위젯의 주요 공통 속성

 

xmlns:android: XML 이름 공간의 선언으로 안드로이드 이름공간에 정의된 속성들을 참조하려고 한다는 것을 암시. XML 파일에서 최외곽 태그는 이 속성을 정의해야 한다.

  • layout_width: 위젯의 너비를 설정하는 속성으로, wrap_content (내용에 맞춤), match_parent (부모의 너비에 맞춤), 또는 특정 dp 값(예: 200dp)을 사용할 수 있다.
  • layout_height: 위젯의 높이를 설정하는 속성으로, wrap_content (내용에 맞춤), match_parent (부모의 높이에 맞춤), 또는 특정 dp 값(예: 100dp)을 사용할 수 있다.
  • id: 위젯의 고유 식별자로, 코드에서 해당 위젯을 참조할 때 사용. 예: @+id/button1.
  • visibility: 위젯의 표시 여부를 결정하는 속성으로, visible (보임), invisible (보이지 않지만 레이아웃 공간 차지), gone (보이지 않으며 레이아웃 공간도 차지하지 않음) 중 하나를 사용.
  • background: 위젯의 배경을 설정하는 속성으로, 배경 색상(예: #FFFFFF)이나 이미지(예: @drawable/background_image)를 지정할 수 있다.
  • padding: 위젯의 내부 여백을 설정하는 속성으로, 각 방향(상하좌우)에 대해 서로 다른 dp 값을 지정하거나, 전체에 대해 동일한 값을 적용할 수 있다. 예: padding="16dp".
  • margin: 위젯의 외부 여백을 설정하는 속성으로, 각 방향(상하좌우)에 대해 서로 다른 dp 값을 지정하거나, 전체에 대해 동일한 값을 적용할 수 있다. 예: margin="8dp".
  • text: 텍스트 기반 위젯에서 표시할 텍스트를 설정하는 속성으로, 문자열(예: "안녕하세요")으로 설정.
  • textSize: 텍스트의 크기를 설정하는 속성으로, dp 단위(예: 16sp)를 사용하여 크기 지정.
  • textColor: 텍스트의 색상을 설정하는 속성으로, 색상 코드(예: #000000)나 색상 리소스(예: @color/black) 사용.
  • hint: 입력 필드에서 사용자에게 입력 예시를 제공하는 속성으로, 힌트 텍스트(예: "이곳에 입력하세요") 설정.
  • inputType: 입력 필드에서 수용할 데이터의 유형을 정의하는 속성으로, 예를 들어 text, number, phone, email 등 지정.
  • onClick: 사용자가 위젯을 클릭했을 때 실행될 메서드를 지정하는 속성으로, android:onClick="onButtonClick"와 같은 형태로 설정.
  • gravity: 위젯 내부에서 내용의 정렬 방식을 설정하는 속성으로, center, left, right, top, bottom 등 사용.

◆ 위젯의 크기

위젯의 크기는 레이아웃 객체에 의해 결정되며, 위젯의 크기는 다음과 같은 값으로 지정 가능하다.


위젯 속성의 예
Button - visibility

 

Button 위젯에서 visibility를 어떻게 지정하는지에 따라 결과물이 어떻게 보이는지 확인해 본다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button1" />

    <Button
        android:id="@+id/button2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button2"
        android:visibility="invisible" />

    <Button
        android:id="@+id/button3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button3" />

    <Button
        android:id="@+id/button4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button4"
        android:visibility="gone" />

    <Button
        android:id="@+id/button5"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button5" />
</LinearLayout>

 

  • 버튼1, 3, 5: visible (값: 0) ▶ 화면에 보이게 한다. 기본값
  • 버튼2: invisible (값:1) ▶ 표시되지 않으나, 배치에서 공간 차지.
  • 버튼4: gone (값:2) ▶ 완전히 숨긴다.

 

위젯은 안드로이드 앱 생성 시 자주 다루므로, 중요한 내용이 있을 경우 추가 설명


다음 내용

 

[Android] 난수 생성기 만들기

이전 내용 [Android] 안드로이드 위젯(widget)이전 내용 [Android] Android Studio 다운 받기자바 안드로이드란? 자바(Java)는 안드로이드 애플리케이션 개발에 가장 널리 사용되는 프로그래밍 언어 중 하나

puppy-foot-it.tistory.com

 

728x90
반응형