작성한 부스트코스 후기입니다.
여러분들의 성원에 더 노력하는 부스트코스가 되겠습니다.
감사합니다.
******************************************
1)링크: https://blog.naver.com/zhfptm12/221799819104
2)작성날짜: 20/02/07
지난 포스팅에서 못 다룬 셰이프 드로어블에 대해 마저 쓰겠습니다.
쉐이프 드로어블은 직접 모양을 그릴 수 있는 드로어블 이었습니다.
도형을 그리려면 원래 소스 코드에서 캔버스(Canvas)라는 객체를 이용해야 하지만 쉐이프 드로어블을 사용하면 소스 코드 없이 도형을 그려 보여줄 수 있으니 여러 가지 장점이 생기게 됩니다.
그럼 셰이프드로어블에 대해서 포스팅 시작하겠습니다.
쉐이프드로어블(ShapeDrawable)
셰이프 드로어블은 XML로 도형을 그릴 수 있도록 합니다.
/res/drawable 폴더 안에 XML 파일을 만들고 최상위 태그를 <shape>로 바꾸면 도형 하나를 정의할 수 있습니다.
shape의 속성 값은 rectangle, oval, line, ring 등이 있습니다. 말 그대로 도형의 겉모양을 속성값으로 정해주는 것입니다.
<shape>최상위 태그에는 <size>, <storke>, <solid>, <padding> 등의 태그가 있습니다.
<stroke>태그는 테두리 선의 속성을 지정할 수 있습니다. width, color 등의 속성으로 말이죠
<solid>태그는 도형 안쪽을 채워줍니다.
도형에 그라데이션을 주고 싶다면 <gradient> 태그를 사용하면 됩니다.
startColor, centerColor, endColor로 시작, 가운에, 끝부분의 색상을 지정해 그라데이션을 줍니다.
<layer-list> 최상위 태그를 사용하면 여러 그래픽을 하나의 XML 파일에 넣을 수 있습니다.
<layout-list> 태그 안에는 <item> 태그가 여러 개 들어갈 수 있으며 <item> 태그 안에는 <shape> 태그가 들어갈 수 있어 각각을 도형으로 정의할 수 있습니다.
여러 그래픽을 중첩 시켜서 더 다양한 배경을 만들 수 있습니다.
<생각해보기>
1. 버튼의 테두리를 쉐이프 드로어블로 만들어 사용하면 포토샵으로 디자인한 버튼 배경 이미지를 사용하는 것에 비해어떤 장점이 생길까요?
- 수정이 더 편한다는 장점 말고는 잘 모르겠습니다.
2. 여러 종류의 쉐이프 드로어블을 만들고 그중 하나를 화면에 들어있는 버튼들의 배경으로 설정할 수 있습니다. 이 상태에서 사용자가 여러 종류 중 하나를 선택하면 화면에 있는 모든 버튼의 배경을 바꾸도록 만들 수 있을까요? 이렇게 하면 버튼의 배경 스타일을 한꺼번에 바꾸는 효과가 있을까요?
- 아직은 배우지 않았지만, 프레임 레이아웃에서 배운 내용처럼 MainActivity에서 setBackgroud 메 서드를 통해 바꿔줄 수 있을 것 같습니다
[출처] [부스트 코스] 안드로이드 - 쉐이프 드로어블 01주 차|작성자 zhfptm12