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

안드로이드 앱 프로그래밍

임시 이미지 정재곤
http://www.boostcourse.org/mo316/notice/2560
좋아요 1436 수강생 20099

아래의 글은 BOOSTER 서포터즈로 활동했던 zhfpt***님이
작성한 부스트코스 후기입니다.
여러분들의 성원에 더 노력하는 부스트코스가 되겠습니다.
감사합니다.
******************************************
1)링크: https://blog.naver.com/zhfptm12/221799731047
2)작성날짜: 20/02/07
<본문작성>
[LECTURE] 1) 상태 드로어블 : edwith

들어가기 전에 뷰의 background 속성을 이용하면 배경색을 지정할 수도 있고 /res/drawable 폴더에 넣어둔 이미지 파일을 설정하여 배경 이미지가 보이게 할 수도 있습... - 부스트코스

www.edwith.org

background 속성을 사용하여 배경에 이미지를 설정할 수 있습니다. 하지만 그 이미지는 아무런 변화가 없습니다.

예를 들어, 버튼이 눌렸을 때, 눌리지 않았을 때 모두 같은 이미지가 보이게 됩니다.

이것을 해결하기 위해서는 드로어블을 사용합니다.

드로어블을 사용하면 뷰 나 화면 일부를 그래픽으로 그리는 기능을 XML으로 만들 수 있습니다.

그럼 Drawable, StateListDrawable, ShapeDrawable 을 중점적으로 보면서 드로어블에 대해서 포스팅해보겠습니다.

Drawable(드로어블)

'드로 버블'이란 것은 화면에 그릴 수 있는 것을 말합니다. 또 이것을 XML로 만들 수가 있습니다. 즉, 화면의 일부에 어떠 ㄴ그래픽을 그리고 싶을 때 XML로 만들 수 있는데 이것을 '드로 버블'이라고 부릅니다.

드로어블 XML 파일은 /res/drawable 폴더 안에 넣어서 마치 이미지처럼 뷰의 배경으로 설정될 수 있습니다.

드로어블 에는 이미지 파일을 xml에 넣고 그 파일을 어떻게 보여줘라라고 지정하는 것을 비트맵드로어블

상태별로 다른 그래픽을 참조할 수 있는 상태 드로어블

두 개의 드로어블 간에 바뀌는 전환 드로어블

우리가 직접 모양을 그릴 수 있는 셰이프 드로어블 등등이 있습니다.

StateListDrawable(상태 드로어블)

뷰의 상태에 따라 뷰에 보여줄 그래픽을 다르게 지정할 수 있도록 합니다.

res/drawable 폴더 안에 XML 파일을 만들어 그 안에 <item>태그를 넣습니다.

item 태그의 속성 중 state_pressed 속성에 true라고 주면, 눌렸을 때 그 아이템의 이미지가 보이게 됩니다.

예를 들어 change라는 XML 파일을 drawable 폴더 안에 만들었습니다. <item>태그를 두 개 만들고 첫 item에는 A라는 이미지를, 두 번째 item에는 B라는 이미지와, state_pressed = "true" 속성 값을 주어 만듭니다.

main.xml에 버튼을 하나 만들고, background 속성 값을 @drawable/change로 주게 되면 눌리지 않았을 때는 A, 눌리게 되면 B의 이미지 가 보이게 되는 것입니다.

버튼을 누르기 전

버튼을 누른 후

<생각해보기>

1. 소스 코드로 드로어블을 만드는 것보다 XML로 드로어블을 만들어 사용하면 얼마나 더 편리해지는 걸까요?

- 버튼이 여러 개인 경우, 버튼에 온 클릭 관련 메서드를 달고 이벤트 처리를 다 해줘야 하지만 xml로 만들면 통일 시켜 사용할 수 있을 것 같습니다.

2. XML로 드로어블을 만들고 레이아웃의 배경으로 설정하면 카드 모양의 배경을 만들 수 있을까요?

같은 방식으로 만들면 가능할 것 같습니다.

 

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