230802 TIL

장재용·2023년 8월 2일

TIL

목록 보기
9/32

안드로이드 뷰(View)

안드로이드 앱의 UI를 구성하는 기본 단위를 뷰 라고 한다.

뷰의 구성

1. 위젯

View의 서브 클래스
View의 서브 클래스 중 화면에 보이는 것

2. 레이아웃

ViewGroup의 서브

길이 단위

  1. px(pixels), in(inches), mm(millimeters)
    절대적인 값, 기기의 해상도에 따라 view의 크기가 다르다.

  2. dp(density-independent pixels)
    밀도에 독리적인 단위, 기기의 해상도가 달라도 사이즈가 얼추 비슷하다.

  3. dpi(dotsperinch)
    dpi는 1인치에 들어가는 픽셀을 나타내는 단위다.
    예를 들어 100dpi는 1인치 당 100개의 픽셀이 들어간다는 의미다.

안드로이드의 주요 dpi는 아래와 같다.
ldpi : 120dpi
mdpi : 160dpi(기본)
hdpi : 240dpi
xhdpi : 320dpi
xxhdpi : 480dpi
xxxhdpi : 640dpi

뷰의 크기를 dp로 설정하면 기기별 해상도(ldpi, mdpi 등등)에 따라 1.5배 2배가 된다.
단, 이미지는 dp로 설정해도 커지지 않는다. 왜냐면 임의로 키우면 깨지기 때문에
고로 각 해상도별 이미지 파일을 설정해줘야한다.

위젯(TextView)

화면에 text를 표시해주는 위젯
속성은 아래와 같다.

안드로이드 색상

색은 #RGB, #ARGB, #RRGGBB, #AARRGGBB 의 포맷으로 지정해 줄 수 있는데 나는 통일성있게 #AARRGGBB포맷만을 주로 사용한다. 제일 앞에 AA는 투명도를 의미하고 나머지 부분은 RGB값을 의미한다. 투명도인 AA는 00이 완전 투명, FF가 불투명이 된다. 예를 들어 android:background="#FFFF0000"로 지정해주면 빨간색으로 배경을 칠하게 된다. 배경그림을 지정해줄 수도 있는데 android:background="@drawable/background_image" 와 같은 형태로 사용가능하다. 배경 그림은 리소스에 들어있는 jpg, png등의 그림을 배경으로 지정할 때 사용한다.

위젯(EditText)

TextView의 서브 클래스이기에 TextView의 모든 속성 사용 가능

힌트 속성이 있다.
android:hint = "내용"

inputType 속성이 EditText의 특징

text : 일반적인 텍스트 키보드
phone : 전화번호 입력 키보드
textCapWords : 문장의 시작을 대문자로 변환
textMultiLine : 여러줄을 입력 받을 수 있음

위젯(Button)

마찬가지로 TextView의 서브클래스로 모든 속성을 사용할 수 있다.(singleLine : 텍스트를 강제로 한 줄에 출력)

버튼 내에 텍스트나 아이콘을 나타낼 수 있다.

(버튼 전체를 이미지로 그리기 위해서는 ImageButton위젯을 사용하면 된다.)

버튼 클릭시 동작법 2가지

1. xml파일에 버튼 위젯의 onClick 속성에 함수를 적어준다.

MainActivity파일의 onCreate함수 내에 onClick 속성에 넣을 함수를 작성해준다.

<Button
        android:id="@+id/submitBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="doAction"
        />

fun doAction(v: View){
         Toast.makeText(getApplicationContext(), "전송 성공! as function",
         Toast.LENGTH_SHORT).show();
    }

2. 리스너 사용

xml파일의 버튼 위젯에 id속성을 추가해주고, MainActivity
에서 findViewById< Button>(R.id.id이름) 로 객체를 만들어주고 객체의 setOnClickListener로 동작 설정


<Button
        android:id="@+id/submitBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />
        
 val submitBtn = findViewById<Button(R.id.submitBtn)
 
 submitBtn.setOnClickListener {
 Toast.makeText(this, "전송 성공! as 리스너",
 Toast.LENGTH_SHORT).show()
        }

위젯(ImageView)

앱 화면에 이미지를 표시해주는 위젯

이미지 파일은 res 안의 drawable폴더 안에 넣어준다.
이미지 파일 형식은 .jpg도 가능하나 투명도 때문에 대부분 .png를 사용한다.

이미지 파일명

한글과 대문자는 들어갈 수 없다.
소문자와 숫자 그리고 언더바 만 사용 가능하다.
또 숫자와 _가 첫 글자로 사용 불가능하다.

이미지뷰에 이미지 넣는 법

1. 코틀린 소스에서 작성법

<ImageView
        android:id="@+id/androidIcon"
        android:layout_width="150dp"
        android:layout_height="150dp"
        />
        
val imageView : ImageView = findViewById(R.id.androidIcon)

imageView.setImageResource(R.drawable.androidicon2)

2. xml코드에서 설정하는 법

<ImageView
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:src="@drawable/androidicon2"
        />
profile
enjoy_error_message!

0개의 댓글