2012-08-02 3 views
2

그래서 여백에 퍼센트 사용 예를 생각 중입니다.사용률은 어떻게됩니까?

오버레이를 사용하여 레이아웃을 dpi 크기로 분리 할 수 ​​있지만 왜 비율을 사용할 수 없습니까? 그런

뭔가 :

Display display = getWindowManager().getDefaultDisplay(); 

float width = display.getWidth(); 
float height = display.getHeight(); 

//20% of left margin 
float imageMarginLeft = (width * 20)/100; 

그리고 이미지, 또는 어떤 요소에이 여백을 설정합니다.

나쁘지 않습니까? 나는 그것에 대해 토론하고 싶다.

감사합니다.

+2

검토를 위해이 코드를 게시하십시오. http://codereview.stackexchange.com/ – Nerd

+0

감사합니다. 잘못된 장소를 유감스럽게 생각합니다! – Otuyh

답변

2

LinearLayout은 가중치를 사용하여 백분율을 계산할 수 있습니다.

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:weightSum="100"> 

    <Button 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="20" 
     android:text="Button" /> 
</LinearLayout> 

중량 기반 레이아웃은 많은 요소를 사용하면 성능이 저하되며 특히 중첩되는 경우 성능이 저하됩니다. 프로그래밍 방식으로 수행하면 레이아웃 시간에도 영향을 줄 수 있습니다.

편집 토론을 원하므로 백분율 기반 레이아웃이 일반적으로 좋지 않음을 제안합니다. 문제는 Android의 물리적 화면 크기가 너무 다양하다는 것입니다. Incredible의 화면 절반은 Galaxy S III의 화면 절반과 많이 다르지만 Nexus 7 화면의 절반과는 많이 다릅니다. dp 단위를 사용하면 얻을 수있는 이점은 물리적 크기와 관련이 있다는 것입니다 화면에있는 것들. 버튼은 작은 화면에서 버튼을 작게 (그리고 선택하기 어렵게) 유지하고 큰 화면에서 막대한 (추한) 것을 방지합니다.

+0

안녕하세요, 답변 주셔서 감사합니다! 실제로 이미지를 찾는 방법은 크기/이미지/단추를 정확하게 설정하는 것입니다. 디스플레이가 480x320 인 경우 이미지는이 크기의 백분율을 기반으로합니다. 1200x720과 동일합니다. 하지만 내 성과에 영향을 줄 것이라고 내게 말하는거야? – Otuyh

관련 문제