2016-06-16 4 views
1

다른 화면 크기에 맞게 내 애플리케이션을 구성하기 위해 여러 값 폴더와 dimen.xml 파일을 만들었습니다. Android Studio의 미리보기에서는 완벽하게 표시되지만 휴대 전화에서 앱을 실행하면 해당 크기가 적용되지 않습니다. Android Studio 레이아웃에 표시된 레이아웃과 휴대 전화에 표시된 레이아웃은 다릅니다.잘못된 폴더에서 가져온 치수 값

그래서 내 넥서스 5에 대한 예를 들어, 응용 프로그램은 값-w640dp에서 치수를 읽어야/dimen.xml 그러나, 그것은 어떤 이상한 이유로 값/dimen.xml에서 그들을 읽습니다.

문제를 해결하려면 어떻게해야합니까?

다음은 스크린 샷입니다.

안드로이드 스튜디오 미리보기 스냅 샷 (넥서스 5)

enter image description here

넥서스 5 전화 스크린 샷 :

enter image description here

+0

봅니다 대신 값-sw640dp을 사용하는 값-w640dp 내 옆에서 http://stackoverflow.com/questions/24579608/android-resource-qualifiers-swdp-vs-wdp –

+0

, 뜨거운 넥서스 5 UI는 값 (sw600dp)에서 치수를 완벽하게 읽습니다. –

답변

1

그래서 DP는 다음 공식을 사용하여 계산됩니다

pixels/dp = dpi/160dpi or pixels/dp = density 

Lookin 또한 그러므로 360이 될 수 있기 때문에, 그 스크린의 실제 최소 폭 없기 때문에 고칠 않을 값-sw600dp 사용

dp = pixels/density 
dp = 1920px/3 = 640dp 
dp = 1080px/3 = 360dp 

: g device metrics에서 넥서스 5는 3 정도의 밀도를 갖는다 값 -sw300dp을 사용해야합니다. 여기에는 매우 다양한 장치가 포함됩니다. 값 - sw600dp은 일반적으로 태블릿을 타겟팅합니다.

기기의 실제 해상도가 에뮬레이터에서 만든 것과 일치하지 않는 문제가 Nexus 5에서도 발생하므로 AVD 화면을 확인하고 해상도가 실제 해상도와 일치하는지 확인하십시오. 장치. 예를 들어 Nexus 5는 1920x1080이어야합니다. 이 문제가 발생하면 에뮬레이터를 다시 만들거나 완전히 다른 것으로 시도하십시오.

enter image description here

+0

값은 sw300dp입니까? 모든 주요 화면 크기의 레이아웃을 어떻게 디자인 할 수 있습니까? – user2498079

+0

에뮬레이터에서 앱을 실행하지 않습니다. 실제 장치에서 실행 중입니다 – user2498079

+0

예, 값 - sw300dp, 고맙습니다. 고맙습니다. 레이아웃에 대한 귀하의 우려는 무엇입니까? 대부분의 표준 레이아웃은 휴대 전화를 잘 다루고 있으며, 사람들은 태블릿에서 많은 공백이있는 문제 만 처리합니다. 사진과 같은 구성 요소의 확장성에 관심이있는 경우 기기의 밀도를 판단하기 좋은 출발점으로 볼 수 있습니다. 일반적으로 레이아웃의 특정 구성 요소, 특히 그림에 대한 관심사입니다. 대부분의 다른 구성 요소는 잘 확장됩니다. –