2012-07-24 4 views
3

안녕하세요, 여러 화면에서 실행하고 싶은 앱을 만들었습니다. HDPi에서 모든 것을 구축했습니다. 그리고 더 큰 스크린을 가진 더 새로운 안드로이드 폰에서 실행할 때 물건들의 정렬이 꺼져 있습니다. 나는 이것이 DP를 사용하여 물건을 배치하기 위해 여백을 설정했기 때문에 이것이라는 것을 압니다.여러 화면 크기에 여백을 사용하는 안드로이드

내 질문은 여러 화면 크기에서 여백을 사용하는 것이 가장 좋습니다. 또는 화면 크기에 따라 DP를 나눌 수있는 몇 가지 코드가 있습니까?

가능한 한 많은 기기에서 앱을 다운로드하고 싶습니다. 하지만이게 내 첫 번째 응용 프로그램 이니 어떻게 그렇게 잘 모르겠다. 그래서 어떤 도움을 주시면 감사하겠습니다.

는 heres는 내 레이아웃의 예

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="20dip" 
    android:background="@drawable/bg_tablecell" 
    android:orientation="horizontal" 
    android:weightSum="1" 
    > 

     <TextView 
     android:id="@+id/position" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:layout_centerVertical="true" 
     android:paddingLeft="4dip" 
     android:text="@string/POS" 
     android:textSize="15dip" 
     android:textColor="@color/blue" 
     /> 

    <TextView 
     android:id="@+id/TeamName" 
     android:layout_width="90dip" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="23dip" 
     android:ellipsize="end" 
     android:gravity="left" 
     android:lines="1" 
     android:text="@string/Team" 
     android:textColor="@color/blue" 
     android:textSize="15dip" 
     android:textStyle="bold" 
     android:layout_centerVertical="true"/> 

    <TextView 
     android:id="@+id/played" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/TeamName" 
     android:layout_alignBottom="@+id/TeamName" 
     android:layout_marginLeft="35dip" 
     android:layout_toRightOf="@+id/TeamName" 
     android:gravity="center" 
     android:text="@string/Zero" 
     android:textColor="@color/blue" 
     android:textSize="10dip" 
     android:layout_centerVertical="true"/> 

    <TextView 
     android:id="@+id/won" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/played" 
     android:layout_alignBottom="@+id/played" 
     android:layout_marginLeft="17dip" 
     android:layout_toRightOf="@+id/played" 
     android:gravity="center" 
     android:text="@string/Zero" 
     android:textColor="@color/blue" 
     android:textSize="10dip" 
     android:layout_centerVertical="true"/> 

    <TextView 
     android:id="@+id/drawn" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/won" 
     android:layout_alignBottom="@+id/won" 
     android:layout_marginLeft="16dip" 
     android:layout_toRightOf="@+id/won" 
     android:gravity="center" 
     android:text="@string/Zero" 
     android:textColor="@color/blue" 
     android:textSize="10dip" 
     android:layout_centerVertical="true"/> 

    <TextView 
     android:id="@+id/lost" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/drawn" 
     android:layout_alignBottom="@+id/drawn" 
     android:layout_marginLeft="16dip" 
     android:layout_toRightOf="@+id/drawn" 
     android:gravity="center" 
     android:text="@string/Zero" 
     android:textColor="@color/blue" 
     android:textSize="10dip" 
     android:layout_centerVertical="true"/> 

    <TextView 
     android:id="@+id/goalsFor" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/lost" 
     android:layout_alignBottom="@+id/lost" 
     android:layout_marginLeft="16dip" 
     android:layout_toRightOf="@+id/lost" 
     android:gravity="center" 
     android:text="@string/Zero" 
     android:textColor="@color/blue" 
     android:textSize="10dip" 
     android:layout_centerVertical="true"/> 

    <TextView 
     android:id="@+id/goalsAgainst" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/goalsFor" 
     android:layout_alignBottom="@+id/goalsFor" 
     android:layout_marginLeft="17dip" 
     android:layout_toRightOf="@+id/goalsFor" 
     android:gravity="center" 
     android:text="@string/Zero" 
     android:textColor="@color/blue" 
     android:textSize="10dip" 
     android:layout_centerVertical="true"/> 

    <TextView 
     android:id="@+id/Difference" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/goalsAgainst" 
     android:layout_alignBottom="@+id/goalsAgainst" 
     android:layout_marginLeft="15dip" 
     android:layout_toRightOf="@+id/goalsAgainst" 
     android:gravity="center" 
     android:text="@string/Zero" 
     android:textColor="@color/blue" 
     android:textSize="10dip" 
     android:layout_centerVertical="true"/> 

    <TextView 
     android:id="@+id/points" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/Difference" 
     android:layout_alignBottom="@+id/Difference" 
     android:layout_marginLeft="18dip" 
     android:layout_toRightOf="@+id/Difference" 
     android:gravity="center" 
     android:text="@string/Zero" 
     android:textColor="@color/blue" 
     android:textSize="10dip" 
     android:layout_centerVertical="true"/> 

화면

xhdpi

답변

12

이 잘 DP를 사용하는 전적인 이유는 당신이 너무 xhdpi

hdpi

화면을 HDPI 걱정할 필요가 없다. 이것에 관해서. 여백은 장치에 따라 거의 동일하지만, 특정 장치 해상도/밀도 조합을 바탕으로 한 경우에는 다른 장치에서 테스트 할 때 확실히 놀랄 것입니다.

<resources 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    > 
    <dimen name="my_view_margin">10dip</dimen> 
</resources> 

그런 다음 모든 특정 장치에 대한 이러한 XMLS 중 하나를 추가 : 뭔가를 dimens.xml처럼 -

는 서로 다른 화면 크기에 대해 서로 다른 여백을 지정해야 할 경우, 단순히 res/values에서 XML 파일을 추가했다 그 한정자 (예 : values-large, values-sw600dp, values-xlarge 등)를 선택하고 값이 적합하다고 수정하십시오.

android:layout_margin="@dimen/my_view_margin" 

를 그리고 안드로이드는이 실행 될 일이 어떤 장치에 대한 올바른 값을 선택할 것입니다 : 당신이 레이아웃에 이러한 차원을 사용하려는 경우, 그냥 사용합니다.

+0

당신이 그렇게 재미 있다고 생각하는 이유는 내가 dp에 넣었습니다. 왜냐하면 hdpi 전화의 프로젝트에서 텍스트보기가 좋게 정렬되어 있고 xhdpi가 왼쪽으로 이동했기 때문입니다. –

+0

그것이 당신의 여백이라고 의심한다면, 레이아웃상의 다른 요소 인 것일 수 있습니다. – kcoppock

+0

스크린 샷을 제공 할 수 있습니까? – kcoppock

관련 문제