inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

iOS/Android 앱 개발을 위한 실전 React Native - Basic

Style 02

style에서 px단위로 입력하는 방법

1270

김주희

작성한 질문수 1

0

안녕하세요. 강사님.

항상 수업 잘 듣고 있습니다. :)

다름이 아니라 style에서 쓰이는 숫자(ex width: 20)가 픽셀이 아니라고 말씀하셨는데,

제가 현재 피그마로 디자이너와 함께 작업을 하고자 하는데 피그마에서는 px단위로 나오는것을 확인하였습니다.

이러한 경우에 react-native에서 px단위로 작업을 할 수 있는 방법이 있을까요?

style react react-native es6

답변 1

0

Wintho

김주희님,

안녕하세요지식공유자 Wintho 입니다.

해당 질문에 답변 드립니다.

react native에서 쓰는 단위에는 logical dimension과 physical dimension이 있는데,

이미지 style에서 지정하는 값은 logical dimension의 일종이라고 보시면 됩니다.

physical dimension은 실제 이미지의 sizing에 쓰이는데, 스마트폰 화면이 크기를 기준으로 삼습니다.

그래서, Dimensions.get('window')를 통해 화면의 크기를 가져와야하고요. (본 강의 Good To Know Things 섹션의 Dimensions 참고)

스마트폰 기종마다 pixel density라는 값이 다릅니다. 

react native에서는 PixelRatio.get()이라는 메서드로 pixel density값을 return하는데, 그값은 아래와 같이 기종에 따라 상이합니다.

따라서,

우선 Dimensions.get('window')를 통해서 logical width 값을 가져오고요,

PixelRatio.get()을 통해서 physical width 값으로 변환하면 pixel 단위로 sizing을 할 수 있습니다.

e.g.

const { logicalWidth, logicalHeight } = Dimensions.get('window')

const physicalWidth = logicalWidth * pixelRatio.get();

const physicalHeight = logicalHeight * pixelRatio.get();

이렇게 하면, 해당 기종 화면의 너비, 높이를 pixel 단위로 알 수 있고,

사용하려는 이미지의 실제 크기(in pixel)을 알고 있다면,

이미지의 크기를 비율로서 조정 가능합니다.

감사합니다.

강의 자료 소스코드는 없나요?

0

330

1

RN 자동완성 기능 질문

0

321

1

환경변수 및 SOURCE관련 질문

0

297

1

글로벌로 설치한다는 게 무슨 말인가요? (-g)

0

322

1

VIsual studio code 에서 react-native run-android 실행시 오류

0

863

2

리액트 네이티브에서 안드로이드 실행

0

562

1

vscode

0

408

2

안드로이드 에뮬레이터 에러...

0

967

1

웹뷰앱 만드는 자세한 방법이 궁금합니다.

0

427

0

App.js 화면 수정 시 안드로이드 emulator 오류

0

343

0

2

0

240

1

ios 구동했을 때 Welcome to React가 아니라 애플

0

480

1

1

0

210

0

진행중 막혀서 질문드립니다

0

380

0

drawer 파트

0

290

0

node.js 설치 오류

0

438

0

vs code 터미널에서의 command not found

0

1570

1

node js 10.15.1 설치가 안됩니다

0

306

0

Unable to boot device in current state: Booted 오류 발생하는경우

1

3189

0

adb 커맨드

1

530

1

Slider만 설치하면 애러가 납니다.

0

315

1

bounces 와 버튼 backgroundColor은 안드로이드에서 적용이 안되는건가요?

0

220

0

오류확인 부탁드립니다.

0

311

0

안드로이드 시뮬 작동 중 오류가 납니다.

0

240

0