로그인 바로가기 하위 메뉴 바로가기 본문 바로가기
난이도
심화

안드로이드 앱 프로그래밍

임시 이미지 정재곤
http://www.boostcourse.org/mo316/notice/2561
좋아요 1436 수강생 20099
아래의 글은 BOOSTER 서포터즈로 활동했던 zhfpt***님이
작성한 부스트코스 후기입니다.
여러분들의 성원에 더 노력하는 부스트코스가 되겠습니다.
감사합니다.
******************************************
1)링크: https://blog.naver.com/zhfptm12/221799819104
2)작성날짜: 20/02/07
<본문작성>
[LECTURE] 2) 쉐이프 드로어블 : edwith

들어가기 전에 쉐이프 드로어블을 사용하면 XML을 이용해 도형을 그릴 수 있습니다. 도형을 그리려면 원래 소스 코드에서 캔버스(Canvas)라는 객체를 이용해야 하지만 쉐이프 드로... - 부스트코스

www.edwith.org

지난 포스팅에서 못 다룬 셰이프 드로어블에 대해 마저 쓰겠습니다.

쉐이프 드로어블은 직접 모양을 그릴 수 있는 드로어블 이었습니다.

도형을 그리려면 원래 소스 코드에서 캔버스(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 메 서드를 통해 바꿔줄 수 있을 것 같습니다

 

 
*********************************************