layered

6. 위젯 본문

안드로이드/안드로이드 앱 프로그래밍

6. 위젯

스윗푸들 2023. 4. 13. 13:42

에디트텍스트(EditText)


상속 관계

 

사용자로부터 값을 입력받을 때 사용한다. 입력하는 문자의 유형을 다양하게 설정할 수 있다.

 

속성 설명 XML 예시
hint 입력 안내 글자 표시
android:hint="글자를 입력하세요!"
textColorHint hint 글자 색상 지정  
inputType 입력하는 문자 유형 지정
기본값은 textPersonName
여러 개 지정 가능!
android:inputType="date|textPersonName"
selectAllOnFocus 문자열 전체 선택
(그 더블 클릭하면 글자들 파란색 되는 그 느낌...)
기본적으로는 커서를 갖다 대면 문자열의 마지막에 위치함
android:selectAllOnFocus="true"
cursorVisible 커서 노출 여부
android:cursorVisible="false"
autolink 문서에 포함된 웹페이지나 이메일 주소를 링크 색상으로 표시
android:autoLink="true"
lineSpacingMultiplier 줄 간격 조정(배수)
android:lineSpacingMultiplier="1.0"
lineSpacingExtra 줄 간격 조정(여유값)
android:lineSpacingExtra="8sp"
editable 문자열 편집 가능 여부
android:editable="false"
capitalize 맨앞 글자를 대문자로 표시
글자, 단어, 문장 단위로 지정 가능
android:capitalize="characters"
ellipsize 내용이 많을 때 생략할 부분 지정 가능
기본값은 뒷부분을 자르는 none
android:ellipsize="start"

 

이미지뷰(ImageView)와 이미지버튼(ImageButton)


상속 관계

 

(프레임 레이아웃에서 펭귄이랑 북극곰 할 때 썼던 그 위젯이다.)

 

둘의 차이점은 버튼인 것 외에는 없다.

이미지는 android:src 또는 app:srcCompat 속성을 [@drawble/파일 이름]으로 지정하는 것으로 넣을 수 있다.

확장자를 같이 적지 않는 이유는 이미지가 res 폴더 내에 들어 있는 리소스이기 때문이다.

 

텍스트뷰에서 text를 지정하지 않으면 뷰가 제대로 보이지 않는 것처럼 이미지뷰도 이 속성은 필수이다!

 

해상도에 따라 이미지를 저장하는 폴더가 다르다(strings.xml과 같은 병렬 리소스 로딩 방식). 기본적으로는 /app/res/drawble 폴더만 있으므로 직접 만들어야 한다.

너무 큰 이미지를 기본 drawble 폴더에 넣으면 오류가 나오니까 주의하자!

 

해상도 폴더 이름
초고해상도 /app/res/drawble-xhdpi
/app/res/drawble-xxhdpi
/app/res/drawble-xxxhdpi
고해상도 /app/res/drawble-hdpi
중간해상도 /app/res/drawble-mdpi
저해상도 /app/res/drawble-ldpi

 

다음은 속성들이다.

속성 설명 XML 예시
android:src
app:srcCompat
이미지 설정
android:src="@drawble/penguin"
maxWidth
maxHeight
이미지가 표시되는 최대 폭, 높이
설정하지 않으면 원본 이미지 그대로 나타남
android:maxWidth="50dp"
tint 눈에 보이는 이미지 색상 설정
약간 필터 느낌...?
#ARGB
 
scaleType 이미지뷰의 크기에 맞게 이미지 자동 조절
android:scaleType="fitStart"
     

 

https://developer.android.com/reference/android/widget/ImageView

 

ImageView  |  Android Developers

 

developer.android.com

 

https://developer.android.com/reference/android/widget/ImageButton

 

ImageButton  |  Android Developers

 

developer.android.com