본문 바로가기

Android/Palette

(12)
[모든 팔레트 정복] 11. Layout(레이아웃) - ConstraintLayout part2 안녕하세요? 닉네임간편입니다. 이번 시간에는 저번 시간에 이어서 ConstraintLayout(제약 레이아웃)에 대해서 계속해서 알아보겠습니다. 1. 크기를 비율로 설정 ConstraintLayout은 크기를 비율로 설정해서 다양한 화면 크기에 유동적으로 대응할 수 있습니다. 안드로이드 기기는 다양한 화면 사이즈를 갖고 있기 때문에 이를 고려해서 화면을 만들어야 합니다. 다양한 크기에 대응하는 방법으로는 크게 3가지가 있습니다. a. ConstraintLayout을 사용해 보다 유연한 레이아웃 만들기 b. 화면 구성에 맞게 디자인된 다양한 레이아웃을 제공하도록 대체 레이아웃 만들기 c. 크기가 변경되는 나인 패치 비트맵 만들기 ConstraintLayout을 사용하면 레이아웃에 있는 다른 뷰와의 관계에 ..
[모든 팔레트 정복] 10. Layout(레이아웃) - ConstraintLayout part1 안녕하세요? 닉네임간편입니다. 이번 시간에는 안드로이드에서도 밀어주는 레이아웃인 ConstraintLayout에 대해서 알아보겠습니다. 1. 정의 뷰의 위치가 서로 다른 뷰 또는 부모 레이아웃과의 관계에 따라 결정되는 레이아웃입니다. 이는 RelativeLayout과 유사하지만 ConstraintLayout은 가로와 세로 각각에 하나 이상의 제약조건이 있어야 한다는 차이가 있습니다. 2. 유용성 우선 현재 안드로이드 스튜디오에서 자동으로 설정되는 디폴트 레이아웃이기 때문에 잘 사용하는 것이 좋습니다. 또한 RelativeLayout보다 더 유연하게 배치할 수 있습니다. 3. 위치 지정 방법 먼저 표시할 뷰의 위치를 정의하기 위해선 가로 및 세로에 제약 조건을 각각 하나 이상 추가해야 합니다. 예를 들어 ..
[모든 팔레트 정복] 9. Layout(레이아웃) - GridLayout 안녕하세요? 닉네임 간 편입니다. 이번 시간에는 GridLayout(그리드 레이아웃)에 대해서 알아보겠습니다. 1. 정의 사각형 그리드에 자식 뷰를 위치시키는 레이아웃입니다. 행과 열로 구성된 그리드에 셀을 이용해 자식 뷰를 표시한다는 점은 TableLayout과 유사합니다. 앞서 TableLayout도 N*N개의 셀에 대해서 행과 열의 개수가 0부터 시작해 N까지 총 N+1개가 있었습니다.(N번째 셀의 경우 N번째 열과 N+1번째 열 사이에 위치합니다) GridLayout도 인덱스가 0부터 시작해서 N까지 각각 N+1개의 행과 열을 갖고 있습니다. 2. 유용성 TableLayout과 마찬가지로 규칙적으로 뷰를 배치할 수 있습니다. 그러나 TableRow 객체를 따로 설정하지 않고 요소만 추가하면 자동으..
[모든 팔레트 정복] 8. Layout(레이아웃) - TableLayout 안녕하세요? 닉네임간편입니다. 이번 시간에는 TableLayout(테이블 레이아웃)에 대해서 알아보겠습니다. 1. 정의 행과 열로 자식 뷰를 위치시키는 레이아웃입니다. 마치 표에 요소를 배치하는 것과 같고, 하나의 셀에 하나의 뷰가 표시되게 됩니다. 이때 행, 열 또는 셀의 테두리 선은 표시하지 않습니다. TableLayout에서 행의 개수는 TableRow 객체의 수이며, 각 행 중에서 가장 셀이 많은 행의 셀의 개수가 바로 TableLayout의 열의 개수가 됩니다. 2. 유용성 마치 표처럼 뷰들을 규칙적으로 위치시킬 수 있다는 장점이 있습니다. 그러나 행과 열을 표현하기 위해 다수의 뷰 그룹을 중첩해서 사용하므로 성능과 메모리 측면에서 좋지 않습니다. 3. 위치 지정 방법 TableRow 객체는 단..
[모든 팔레트 정복] 7. Layout(레이아웃) - FrameLayout 안녕하세요? 닉네임간편입니다. 이번 시간에는 레이아웃 중 FrameLayout에 대해서 알아보겠습니다. 1. 정의 FrameLayout은 앞서 LinearLayout과 마찬가지로 마치 스택처럼 순서대로 쌓이는 구조입니다. 그러나 LinearLayout이 수평 혹은 수직 방향으로 하위 요소들을 쌓아서 배치하는 반면, FrameLayout은 기존 요소를 새로운 요소가 '덮으면서' 쌓입니다. 즉, 자식 뷰는 가장 나중에 추가된 뷰가 가장 위에 표시되며, 이전에 추가되었던 뷰들은 나중에 추가된 뷰들과 중첩되어 화면에 표시되지 않을 수 있습니다. 그러나 그렇기에 자식 뷰를 중첩해서 사용해야 할 때 활용할 수 있습니다. 아래 첫 번째 그림을 보면 뷰는 view1부터 시작해 view3까지 쌓였지만, 화면에는 오직 v..
[모든 팔레트 정복] 6. Layout(레이아웃) - RelativeLayout 안녕하세요? 닉네임간편입니다. 이번 시간에는 저번 시간에 이어 Layout에 대해서 다룰 것이고, 그 중 RelativeLayout에 대해서 알아보겠습니다. 1. 정의 뷰 간 상대적인 위치로 뷰를 표시하는 레이아웃(뷰그룹)입니다. 예를 들어 '사과는 감자의 오른쪽에 있다'로 사과의 위치를 표시하는 것과 같습니다. 2. 유용성 기존 LinearLayout의 경우 화면에 아래와 같은 배치를 하기 위해선 또 하나의 LinearLayout을 만들어 중첩시켰어야 했습니다. 오로지 하나의 방향으로만 요소를 쌓을 수 있기 때문입니다. 그리고 레이아웃이 중첩된다면 성능이 저하될 수 있다는 문제가 있습니다. 그러나 RelativeLayout을 사용한다면 레이아웃을 중첩시키지 않고 상대적인 위치를 조절할 수 있습니다. 이..
[모든 팔레트 정복] 5. Layout(레이아웃) - 개요와 LinearLayout 안녕하세요? 닉네임간편입니다. 이번 시간에는 팔레트 요소 중 Layout(레이아웃)에 대해서 알아보겠습니다. 먼저 설명에 앞서, 레이아웃 자체에 대해서 설명드리겠습니다. 1. Layout이란 레이아웃은 UI를 위한 구조를 정의하며, 모든 요소는 뷰와 뷰 그룹 객체의 계층 구조를 사용하여 빌드됩니다. 이때 뷰는 위젯이라고도 하며, 일반적으로 흔히 사용되는 TextView나 ImageView 등에 해당합니다. 뷰 그룹은 일반적으로 레이아웃이라고 하며 여러 유형이 있습니다. 2. 만드는 법 레이아웃은 XML 파일로 선언하여 만들 수 있고, 또한 런타임에 레이아웃 요소를 인스턴스 화해서 만들 수 있습니다. 그러나 XML 파일로 레이아웃을 만들면 해당 코드를 분리할 수 있어 유지보수에 더 효과적이고, 다양한 화면..
[모든 팔레트 정복] 4. Widgets(위젯) part 2 안녕하세요? 닉네임간편입니다. 이번 시간에는 저번 시간에 이어 팔레트 중 Widgets 요소에 대해서 계속해서 알아보겠습니다. 1. RatingBar SeekBar와 ProgressBar를 상속한 것이며 별의 개수로 상태를 표시합니다. 사용자는 드래그하거나 터치함으로써 별의 개수를 설정할 수 있습니다. 별의 개수는 요소의 너비가 wrap_content로 설정되었을 때 전부 표시되며, 만일 그 이외의 값이 설정된다면 어떻게 표시될지 예측할 수 없습니다. isIndicator 속성을 통해 사용자가 바꿀 수 없는, 단지 표시하는 역할만 하는 RatingBar를 만들 수 있습니다. numStarts 속성을 통해 화면에 표시될 별의 개수를 설정하고, rating을 등급을 매길 수 있습니다. stepSize를 통해..

728x90
반응형