기본위젯 : 버튼, 텍스트뷰, 에디트텍스트, 이미지뷰
*텍스트뷰
: 화면에서 글자를 보여주는 역할
-text 속성 : 텍스트뷰의 문자열을 설정
-strings.xml 파일에서 <string name="person_name">000</string> -> activity_main.xml에서 텍스트뷰의 text 속성에 @string/person_name이라고 입력 -> <string>태그의 문자열이 텍스트뷰에 나타남
-textColor속성 : 텍스트뷰에서 표시하는 문자열의 색상 설정
-textSize 속성 : 텍스트뷰에서 표시하는 문자열의 크기(폰트 크기) , sp 단위 사용
-textStyle 속성 : normal, bold, italic ...
-typeFace 속성 : 텍스트뷰에서 표시하는 문자열의 폰트 설정 , normal, sans, serif, monospace ...
-maxLines 속성 : 텍스트뷰에서 표시하는 문자열의 최대 줄 수 설정, 한 줄로만 표시하고 싶을 때는 값을 1로 설정
*버튼
: 사용자가 클릭하면 클릭에 대한 반응을 하는 위젯, 텍스트뷰를 상속하여 정의되어 있음(텍스트뷰의 속성 그대로 가지고 있음)
-기본 버튼, 체크 박스, 라디오 버튼 ..
-OnClickListener을 정의하여 이벤트 처리 가능
-체크 박스와 라디오 버튼은 단순히 클릭 이벤트만 처리하는 것이 아니라 상태 값을 저장하고 선택/해제 상태를 표시할 수 있음 -> CompoundButton 클래스 사용(isChecked() : 버튼이 선택되어있는지 확인/ setChecked() : 체크 상태를 지정)
-라디오 버튼은 하나의 버튼이 선택되면 다른 버튼의 선택이 해제되어야 함. 이런 기능을 구현하기 위해 RadioGroup을 이용해 라디오 버튼을 하나의 그룹으로 묶어줌
*에디트텍스트
: 입력상자의 역할(사용자에게 값을 입력받을 때 사용)
-hint 속성 : 에디트텍스트 안에 간단한 안내글 표시(사용자의 입력이 진행되면 사라짐)
-inputType 속성 : 입력되는 글자의 유형 정의
*이미지뷰, 이미지버튼
:이미지를 화면에 표시할 때 사용하는 위젯
-이미지뷰에 이미지를 나타내려면 drawble폴더에 저장한 이미지 파일을 복사하여 넣은 후 app:srcCompat 속성값을 @drawable/이미지 파일명 으로 지정
-android:src, app:srcCompat 속성은 원본 이미지를 설정(반드시 필요)
-maxWidth, maxHeight : 이미지가 표시되는 최대 폭, 높이 설정(설정하지 않으면 원본 이미지가 그대로 나타남)
-tint : 이미지뷰에 보이는 이미지의 색상을 설정
-scaleType : 이미지뷰의 크기에 맞게 원본 이미지의 크기를 자동으로 늘리거나 줄여서 보여줄 때 사용
*드로어블
: 상태에 따라 그래픽이나 이미지가 선택적으로 보이게 해줌
-비트맵 드로어블(BitmapDrawable) : 이미지 파일을 보여줄 때
-상태 드로어블(StateListDrawable) : 상태별로 다른 그래픽 참조
-전환 드로어블(TransitionDrawable) : 두 개의 드로어블이 서로 전환가능
-셰이프 드로어블(ShapeDrawable) : 색상과 그라데이션을 포함하여 도형 모양 정의
-인셋 드로어블(InsertDrawable) : 지정한 거리만큼 안쪽으로 들어오도록 만듦
-클립 드로어블(ClipDrawable) : 다른 드로어블 클리핑
-스케일 드로어블(ScaleDrawable) : 다른 드로어블의 크기 변경
...
<selector xmlns:android="~">
<item android:state_pressed="true"
android:drawable="@drawable/finger_pressed" />
<item android:drawable="@drawable/finger" />
</selector>
//버튼이 눌리면 배경 이미지 변경(상태 드로어블)
셰이프 드로어블 : 최상위 태그 <shape> 태그, shape라는 속성 값으로 도형 그릴 수 있음. <size>태그 도형의 크기 지정, <stroke> 태그 테두리 선의 속성 지정, <solid> 태그 도형의 안쪽 채울 때 사용, <gradient> 태그 그라데이션 생성(startColor에는 시작 부분의 색상, centerColor, endColor)
*이벤트
: 터치 이벤트, 키 이벤트, 제스처 이벤트(ex스크롤,플링(빠른속도로 스크롤)), 포커스, 화면 방향 변경
단말 방향 전환 -> layout폴더의 activity_main.xml : 단말이 세로 방향일 때/ layout-land폴더의 activity_main.xml : 단말이 가로 방향일 때
ㄴ 단말의 방향이 바뀔 때 액티비티가 메모리에서 없어졌다가 새로 만들어 짐 => onSaveInstanceState 메서드 사용
*토스트
- 메시지 만들기 Toast.makeText(Context context, String messaage, int duration).show();
- 토스트의 위치지정 : setGravity(int gravity, int xOffset, int yOffset) / 여백지정 : setMargin(float horizontalMargin, float verticalMargin)
*스낵바
: 화면 아래쪽에서 올라오는 메시지
*알림 대화상자
...
private void showMessage(){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("안내");
builder.setMassage("종료하시겠습니까?");
...
builder.setPositiveButton("예", ~ ...
builder.setNeutralButton("취소", ~ ...
builder.setNegativeButton("아니오", ~ ...
AlertDialog dialog = builder.create();
dialog.show(); // 대화상자 객체 생성 후 보여주기
...
*프로그레스바
: 어떤 일의 진행 상태를 중간 중간 보여줌 , 막대모양(진행 정도) or 원모양(진행 중)- xml 레이아웃에 프로그레스바를 추가할 때 <ProgressBar> 태그 사용, 값 최대 범위는 max 속성으로, 현재 값은 progress 속성으로 설정
도전! 05
도전! 06
'Android Studio' 카테고리의 다른 글
Do it 안드로이드 앱 프로그래밍 - 둘째마당(2장) 레이아웃 익히기 (0) | 2021.08.25 |
---|---|
Do it 안드로이드 앱 프로그래밍 - 둘째마당(1장) (0) | 2021.08.25 |
Do it 안드로이드 앱 프로그래밍 - 첫째마당 (0) | 2021.07.12 |
Do it 안드로이드 앱 프로그래밍 - 3) 이벤트와 리스트뷰 (0) | 2021.03.06 |
Do it 안드로이드 앱 프로그래밍 - 2) 레이아웃 (0) | 2021.03.04 |