LinearLayout : 선형 레이아웃
레이아웃 안에 다른 레이아웃을 넣을 수 있음
모든 위젯들의 부모 클래스
TextView -> 아이디 필요 x
android:id="@+id/원하는아이디이름"
위젯에 식별자를 부여하는 이유
: 자바 코드에서 findViewById() 메소드로 위젯을 찾아서 작업하기 위해
Button button1;
button (Button) findViewByID(R.id.my_button);
match_parent (=fill_parent) : 부모의 크기를 꽉 채움
wrap_content : 뷰가 나타내는 내용물의 크기에 맞춤
px(픽셀), dp(밀도-화면밀도에 영향 x), sp(밀도-화면밀도에 영향 o),
in(인치), mm(밀리미터), pt(1/72 인치)
장치의 종류에 관계없이 항상 동일한 크기로 표시 -> dp,pt,mm,in
화면에서 1인치를 표시하려면 160dp로 지정하면 됨
##RRGGBB : RR 빨간색 / GG 녹색 / BB:청색
#AARRGGBB : AA 투명도 / 나머지 동일
배경색 바꾸려면
android/background="#000000" //검은색으로 변경
android/background="#FF0000" //빨간색으로 변경
[상수 - 값 - 설명]
visible - 0 - 화면에 보임 (디폴트 값)
invisible - 1 - 표시 되지 않음 but 배치에서 공간을 차지함
gone - 2 - 완전히 숨김
패딩이란?
위젯의 경계선과 콘텐트와의 관계
paddingLeft, paddingTop, paddingRight, paddingBottom
마진이란?
레이아웃과 위젯 간의 관격
layout_marginLeft,layout_marginRight, layout_marginTop, layout_marginBottom
enable = 버튼의 동작 여부 설정 false, True
rotation = 회전
버튼의 색상은 backgroundTint 속성을 변경하여 사용
android:onClick="함수 이름" //xml 파일에서
public void 함수이름(View view) { //java 파일에서
}
android:onClick="onClick" //xml 파일에서
public void onClick(View view) { //java 파일에서
//토스트 메시지
Toast.makeText(getApplicationContext(), "버튼 눌려졌음", Toast.LENGTH_SHORT).show();
}
onClick 속성에서 선언하는 메소드는
첫째, publick 이어야 하고
둘째, void 반환형을 가지고
셋째, View를 메소드의 인수로 가진다. 클릭된 View 객체가 전달된다.
class Listener implements View.OnClickListener { //리스너 인터페이스를 구현한 클래스 정의
public void onClick(View v) {
}
}
Listener listen = new Listener(); //이벤트 리스너 객체 생성
button.setOnClick(listen); // 버튼에 이벤트 리스너 객체를 등록
리스너 - 콜백 메소드 - 설명
View.OnClickListener - onClick() - 항목 클릭하면 실행
View.OnLongClickListener - onLongClick() - 항목을 일정시간동안 누르고 있으면 실행
View.OnFocusChangeListener - onFocusChange() - 하나의 항목에서 다른 항목으로 포커스를 이동할 때 실행
View.OnKeyListener - onKey() - 포커스를 가지고 있는 항목 위에서 키를 눌렀다가 놓았을 때 실행
View.OnTouchListener - onTouch() - 터치 이벤트로 간주된 동작을 했을 때 시행
Button b = (Button) findViewById(R.id.button2);
b.setOnClick(new View.OnClickListener() {
public void onClick(View v) {
}
});
Button b = (Button) findViewById(R.id.button2);
b.setOnClickListener((e) -> {
});
사용자가 입력한 텍스트를 읽어 오려면 getText()
텍스트를 쓰려면 setText() 호출
p.109쪽 보기 ㅠㅠ (아직 이해 못함)
TextView : 3개 (Number 1, Number 2, Result) - wrap_content
Button : 4개 (+ , - , *, /) - wrap_content
EditText : 3개 - match_parent
연산 버튼 클릭 시 -> result = number1 연산 number2 -> result / setText
속성 - 설정 메소드 - 설명
android:adjustViewBounds - setAdjustViewBounds(boolean) - 가로, 세로 조정 (종횡비 유지를 위해)
android:cropToPadding - - true일 경우 패딩 안에 맞춰서 이미지를 자름
android:maxHeight - setMaxHeight(int) - 최대 높이
android:maxWidth - setMaxWidth(int) - 최대 너비
android:scaleType - setScaleType(ImageView.ScaleType) - 이미지 뷰 크기에 맞춰 어떻게 확대 or 축소
android:src - setImageResoruce(int) - 이미지 소스 (제일 중요)
ex)android:Src="@drawable/이미지 파일 이름(한국어는 안 됨)"
android:tint - setColorFilter(int, PorterDuff.Mode) - 이미지 배경 색상
txt1.setTextColor(Color.BLUE);
txt2.setTextSize(80);
txt3.setTextColor(Typeface.SERIF, Typeface.ITALIC);
ImageView : 1개
TextView : 1개
Button : 2개
버튼 클릭 시 -> setText를 이용하여 텍스트 뷰의 숫자를 증가 or 감소
TextView : 1개
ImageView : 1개
Button : 1개
버튼 클릭 시 -> 랜덤으로 숫자 설정 후 값을 저장 -> 해당 숫자와 같은 이미지로 변경
번외) 종료 버튼을 만든 후 클릭시 -> 토스트 메시지로 각 숫자가 몇 번 나왔는지 화면에 잠깐 보여줌