코드가 많을 경우, 북마크를 하기 위해
F11
을 눌러주면 북마크를 넣을 수 있다. 그리고Shift + F11
을 누르면 북마크 목록이 나오고 이를 클릭하면 한 번에 북마크가 표시된 코드로 이동하게 된다.
하단의 LogCat을 통해 에러가 발생한 경우 디버깅을 위해 기본적인 Log를 확인할 때 사용한다.
실습 1 - 랜덤 주사위 굴리기 🎲
findViewById : id에 해당하는 태그 찾기
random.nextInt(6) + 1 : 1 ~ 6까지의 랜덤 숫자
( 1을 더하지 않으면 0 ~ 6까지의 랜덤 숫자를 얻게 된다. )
👉 text
에는 무조건 String
만 들어간다는 점을 꼭 기억하고 사용하자!
사이즈를 입력할 때 보면 아래와 같이 dp
, in
, mm
, pt
, px
, sp
가 존재한다.
여기서 주로 사용하는 건 px, sp, dp가 있는데 이때 px는 픽셀단위로 해상도에 따라 크기가 작아지거나 커지기 때문에 해상도와 관계없이 크기가 일정하게 유지하는 dp
를 사용하는 것을 추천한다.
- match_parent : 자신의 부모에 폭이나 높이를 맞춰서 크기가 설정됨
- wrap_content : 폭과 넓이에 글자가 딱 맞게 들어갈 정도로 크기가 설정됨
만약 match_parent를 width와 height에 설정하면 화면을 꽉채운 TextField가 생성되겠죠 ? 🤔
이전에 Android Studio를 이용해서 인스타그램을 절반 정도 제작해본 적이 있다. 그때는 UI를 설계할때 코딩으로만 구현했었는데, 이번 강의에서는 Design에서 마우스 클릭으로만 UI를 설계해 코딩으로만 구현하는 것보다 훨씬 빠르게 구현할 수 있으며, 편리하다고 생각했다.
컨테이너에 포함된 View들을 수평 또는 수직으로 일렬 배치하는 레이아웃
옵션으로 orientation
을 주게 되면,
vertical
: child를 위에서 아래로 수직 배열
horizontal
: child를 왼쪽에서 오른쪽으로 수평 배열
View들을 서로 간의 관계나 컨테이너와의 위치 관계를 지정해 배치하는 레이아웃
위젯간의 관계도 설정하기도 하지만, parent 레이아웃의 오른쪽이나 혹은 안의 가운데에 배치하는 것등도 가능하다. 상대적인 배치 기준을 지정하지 않으면, relativelayout의 내부에서 중첩되서 표시된다.
표 형식으로 child를 배치하는 레이아웃
child View 위젯들을 행과 열로 구성된 테이블로 나누어 표시하는 Layout 클래스이다. 참고로 실무에서는 거의 사용한 적이 없을 정도로 드물기 때문에 아! 이런 것도 있네! 하는 생각을 가지고 넘어가면 좋을 것 같다.
컨테이너에 포함된 View들을 전부 좌상단에 배치하는 레이아웃
Frame Layout 위에 영상을 재생시킬 경우 사용한다. 가장 최근에 추가된 View 위젯이 가장 위에 표시된다.
제약 조건을 사용해 화면을 구성하는 방법
복잡한 레이아웃을 단순한 계층구조를 이용해서 표현이 가능해 자식 View 간의 상호 관계를 정의할 수 있다. 또한, 뷰 비율 조절도 간단하게 할 수 있다.
위젯 크기 설정
ResizeHandle
를 통해 마우스 클릭만으로 크기를 설정할 수 있는 방법이 하나 있고, 또 다른 방법으로는 직접 값을 입력해서 지정해주는 방법이 있다.
위젯 상대적인 정렬
SideHandle
을 이용해 위젯이 다른 위젯이나 화면 경계에서 어떻게 정렬될지 지정이 가능하다. (각 변의 가운데에 존재)
<Button
android:id="@+id/btn5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="Button5" />
❓android:layout_alignParentRight = "true" : 오른쪽으로 붙이기
LinerLayout
안에 LinerLayout
과 RelativeLayout
, ConstraintLayout
를 하나씩, 즉 총 3개의 레이아웃으로 구성한 실습이다.
RelativeLayout에 빨간 테두리는 RelativeLayout이 아니라 첫 LinerLayout의 배경에 빨간색을 넣고
RelativeLayout
에 여백을 주면 여백인 부분이LinerLayout
의 배경색으로 나와 빨간 테두리처럼 보이는 것이다.