[ Do it! ] 안드로이드 앱 프로그래밍 - #2. 기본 위젯

ma.caron_g·2022년 2월 6일
0

Do it! - Android Studio

목록 보기
4/18
post-thumbnail

기본 위젯들이 갖는 주요 속성들을 정리해 보겠습니다.

[ TextView ]

속 성설 명
text텍스트뷰에 보이는 문자열을 설정할 수 있습니다.
textColor텍스트뷰에서 표시하는 문자열의 색상을 설정합니다. (#AARRGGBB)
textSize텍스트뷰에서 표시하는 문자열의 크기를 설정합니다.
textStyle텍스트뷰에 표시하는 문자열의 스타일 속성을 설정합니다.
[ "normal", "bold", "italic", "bold|italic" ]
textFace텍스튜뷰에서 표시하는 문자열의 폰트를 설정합니다.
[ "normal", "sans", "serif", "monospace" ]
maxLine텍스트뷰에서 표시하는 문자열의 최대 줄 수를 설정합니다.
특히 한 줄로만 표시하고 싶을 경우에는 값을 "1"로 설정합니다.


[ Button ]

이 버튼 위젯에 발생하는 이벤트를 처리하기 위한 가장 간단한 방법이 OnClickListener를 정의하여 버튼에 설정하는 것이라고 했습니다.

[ CheckBox & RadioButton ]

단순히 클릭 이벤트만 처리하는 것이 아니라 상태 값을 저장하고 선택/해제 상태를 표시합니다.
이를 위해 CompoundButton 클래스가 정의되어 있는데 이 클래스는 다음과 같은 메서드를 포함합니다.

// Reference 

public boolean isChecked()
public void setChecked (boolean checked)
public void toggle()

체크박스나 라디 버튼이 선택되어 있는지 확인하는 메서드는 isChecked()이며 코드 상에서 상태 값을 호출할 경우에는 setChecked() 메서드를 사용합니다.
만약 상태가 바뀔 경우 다음과 같은 메서드가 호출됩니다.

// Reference

void onCheckedChanged(CompoundButton buttonView, boolean isChecked)

[ CheckBox와 RadioButton의 차이 ]

CheckBox는 중복 선택이 가능합니다.
RadioButton 하나만 선택 가능하며, 하나를 선택하면 선택된 다른 하나는 체크가 해제됩니다.

라디오 버튼의 경우에는 하나를 선택하면 다른 것들은 선택이 해제되는 동작을 수행하여야 하므로
Radio-Group을 이용해 하나의 그룹으로 묶어주게 됩니다.
clearCheck()메서드를 이용하여 라디오 버튼의 선택 상태를 모두 해제할 수 있습니다.

라디오 버튼의 선택 상태가 변경 될 때 이벤트를 바아 처리하고자 한다면
OnCheckedChangeListener 인터페이스를 구현하고 setOnCheckedChangeListener() 메서드로 설정합니다.



[ 입력 상자 ]

입력 상자의 역할을 하는 EditText는 사용자의 입력을 받고자 할 때 일반적으로 사용됩니다.
사용하기 쉽긴 하지만 사용자가 글자를 입력하기 위해 포커스를 둘 때마다 소프트 키패드가 화면에 나타나기도 하고 한글, 영문, 숫자 등 입력하는 문자의 유형도 다양하므로 때로 신경 쓰이는 위젯이기도 합니다.

속 성설 명
inputType입력되는 글자의 유형을 정의합니다.
hint기본 안내문을 표시합니다.


[ 이미지뷰 ]

이미지뷰는 이미지를 화면에 표시하려고 제공하는 가장 간단한 위젯 중의 하나입니다.
이미지를 로딩하여 설정하려면 /res/drawable 폴더 밑에 이미지 파일을 복사하여 너은 후 이미지뷰의 src 속성 값으로 이미지 파일을 지정합니다.

android:src="@drawable/이미지 파일명"
android:background=="@drawable/이미지 파일명"
속 성설 명
src원본 이미지를 설정합니다.
maxWidth, maxHeight이미지가 보일 최대 크기를 설정합니다.
tint이미지뷰에 보이는 이미지 위에 색상을 적용하고 싶을 때 사용합니다. (#AARRGGBB)
scaleType이미지가 원본 이미지의 크기와 다르게 화면에 보이는 경우 확대/축소를 어떤 방식으로 적용할 것인지 설정합니다.
[ "fitXY", "centerCrop", "centerInside" ]

이미지뷰에 추가될 이미지는 보통 JPG나 PNG 확장자를 가진 이미지가 사용됩니다.
안드로이드는 오픈 소스를 지향하므로 이 중에서도 PNG 포맷을 더 권장합니다.



[ 번외 ]

[ 텍스트뷰와 입력상자의 다른 기능들 ]

안드로이드의 뷰가 가지는 속성은 상당히 많습니다.
이 위젯들의 속성이 다른 위젯들에도 그대로 사용되는 경우가 많으므로 이 위젯들의 몇 가지 속성들을 좀 더 자세히 살펴보도록 하겠습니다.

에디트 텍스트를 길게 누르면 사용자가 문자열을 복사, 잘라내기 등의 작업을 할 수 있는데 이러한 기능을 코드에서 동작하게 하려면 다음과 같은 메서드를 사용해야 합니다.

// Reference

//선택영역의 시작 위치를 알림
public int getSelectionStart()

//선택영역의 끝 위치를 알림
public int getSelectionEnd()

//메서드를 선택영역으로 지정하는데 사용
public void setSelection(int start, int stop)
public void setSelection(int index)

//전체 문자열을 선택
public void SelectAll()

// 선택영역을 확장하는데 사용
public void extendSelection(int index)

속 성설 명
커서에디트텍스트는 문자나 숫자를 입력하는 입력상자의 역할을 하므로 커서가 반짝이게 됩니다.
selectAllOnFocus속성을 설정하면 포커스를 받을 때 문자열 전체가 선택됩니다.
만약 커서를 보이지 않도록 설정하려면 cursorVisible을 false값으로 설정합니다.
자동 링크문자열에 들어 있는 링크 정보로를 자동으로 차아 링크 색상으로 표시하고 누르면 필요한 기능을 수행하도록 합니다.
autoLink 기능을 수행
줄 간격 조정줄 간격은 기본 줄 간격으로 되어 있는 값의 배수와 여유 값으로 설정할 수 있습니다.
lineSpacingMultiplier는 줄 간격을 배수로 설정할 때 사용
lineSpacingExtra는 여유 값으로 설정할 때 사용
lineSpacingExtra 속성으로만으로도 충분한 경우가 많습니다.
줄 간격 조정은 사용자를 위한 배려입니다
대소문자 표시capitalize 속성은 문자를 대문자나 소문자로 바꾸어 표시하는 기능을 제공합니다.
[ "charac-ters(글자)", "words(단어)", "sentences(문장)" ] 단위로 맨 앞글자를 대문자로 표시해 줍니다.
줄임 표시텍스트뷰가 한 줄로 되어있는데 이 줄을 넘어가는 텍스트가 설정되어 있으면 문자열 뒤에 "..."으로 표시합니다.
ellipsize 속성을 이용하면 문자열의 어디를 잘라서 표시할 것인지 설정할 수 있습니다.
디폴트값인 "none"은 뒷부분을 자르고 "start", "middle", "end" 값들은 각각 앞부분, 중간부분, 뒷부분을 잘라서
보여줍니다.
힌트 표시안내문을 알려주고 싶을 때는 hint 속성을 사용합니다.
힌트로 표시한 글자의 색상을 바꾸고 싶다면 textColorHint 속성을 이용합니다.
편집 기능입력된 문자열을 편집 못하게 하고 싶다면 editable 속성 값을 "false"로 설정하면 됩니다.
문자열 변경 처리입력된 문자를 확인하거나 입력된 문자가 필요한 포맷과 일치하는지 확인하기 위해서 getText()메서드를 사용합니다.
사용자의 입력에 의해 바뀔 때마다 확인하는 기능을 넣고 싶다면 TextChangedListener를 사용할 수 있습니다.
addTextChangedListener() 메서드를 이용하면 TextWatcher 객체를 설정할 수 있는데
이 객체는 텍스트가 변경될 때마다 발생하는 이벤트를 처리 할 수 있습니다.
//Reference

public void addTextChangedListener(TextWatcher watcher)
public void beforeTextChanged(CharSequence s, int start, int countm int after)
public void afterTextChanged(Editable s)
public void onTextChanged(CharSequence s, int start, int before, int count)

문자열이 편집되기 전과 후 그리고 편집된 정보를 확인할 수 있도록 하므로 이 안에 필요한 기능을 추가합니다. 만약 입력된 문자열의 길이 값을 확인할 때는 setFilters() 메서드를 이용해 InputFilter 객체를 파라미터로 전달하고 이 객체의 LengthFilter() 메서드를 호출하면 입력된 문자열의 길이 값을 설정할 수 있습니다.

profile
다른 사람이 만든 것을 소비하는 활동보다, 내가 생산적인 활동을 하는 시간이 더 많도록 생활화 하자.

0개의 댓글