2013-03-04 2 views
0

저는 혼란스러워졌습니다. 최소한 상자 폭을 설정하려고합니다. 화면 폭의 20 %라고 할 수있는 모든 너비의 장치가 필요합니다. 내가 어떻게 이걸 얻을 수 있니?장치간에 일정하게 상자의 백분율 너비를 어떻게 설정할 수 있습니까?

태블릿과 XHDPI Galaxy S3에서 두 화면의 dpWidth를 얻었습니다. S3는 dpWidth가 300이고 타블렛이 800입니다.이 경우 프로그래밍 방식으로 dpWidth의 20 %를 계산하고이를 상자 dp 값으로 설정하면됩니다.

너비가 적당하기 때문에 무게를 사용할 수 없다고 생각합니다. 그렇다면 XML에서 어떻게이 작업을 수행 할 수 있습니까?

또한 후속 질문입니다. 어떻게 dp를 유용하게 사용할 수 있습니까? 한 장치가 300을 가질 수 있고 다른 장치가 800을 가질 수 있다면 dp의 효과는 극적으로 바뀝니다! 왜 더 유용한 단위가 없는지 이해할 수 없습니다. 즉, 화면을 100 단위 또는 그 이상으로 나눕니다.

답변

3

무게를 사용할 수 있습니다. 선형 레이아웃의 가중치는 레이아웃 방향을 통해서만 계산됩니다. 따라서 가로형 LinearLayout을 사용하면 가중치가 상대 너비를 제어합니다. 해당 레이아웃의 항목을 전체 화면으로 확장하려면 모두 fill_parent로 설정하고 그에 맞게 가중치를 설정 (75 : 25 %로 설정하려면 3 : 1) 한 다음 상위 레이아웃의 너비를 0dp로 설정합니다. 결과는 지정한 가중치로 전체 화면 레이아웃이 표시됩니다.

Dp는 매우 유용합니다. 1 dp는 기본적으로 1/160 인치입니다. 실제 세계 크기를 유지하려는 경우 dp를 사용합니다. 픽셀 단위로 고정 된 크기를 유지하려면 px를 사용하십시오. 글꼴 크기에 따라 크기를 크게하려면 sp를 사용하십시오.

관련 문제