2014-01-14 6 views
0

다음과 같은 레이아웃이 있습니다. ldpi, mdpi, hdpi 및 xhdpi 적절한 폴더에 이미지가 있습니다. 레이아웃이 적절한 크기로 확장되지 않는 이유를 모르겠습니다. 적어도 전체 레이아웃을 보려면 스크롤 할 수 있도록 ScrollView를 추가했지만 원하는 효과가 아닙니다. 스크롤없이 모든 콘텐츠를 모든 크기와 밀도에서 볼 수 있기를 바랍니다. 여러 크기와 밀도를 지원하는 Android 문서를 읽었으나 여기에서 어디로 가야하는지 이해할 수 없습니다. "Nexus 10에서 다른 장치를 에뮬레이션하기 위해"디스플레이 밀도 "와"디스플레이 셸 크기 "명령을 사용하고 있습니다. 미리 감사드립니다. Android 레이아웃 여러 화면 크기 및 밀도

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 

<RelativeLayout 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:background="@drawable/bg" > 

<View 
    android:id="@+id/viewSpacer0" 
    android:layout_width="1dp" 
    android:layout_height="7dip" 
    android:layout_centerHorizontal="true" /> 

<LinearLayout 
    android:id="@+id/linearLayoutLine1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:orientation="horizontal" 
    android:layout_below="@+id/viewSpacer0" > 

<ImageView 
    android:id="@+id/imageLogo" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:scaleType="fitCenter" 
    android:src="@drawable/logo_large" /> 

<View 
    android:id="@+id/viewSpacer1" 
    android:layout_width="20dp" 
    android:layout_height="1dip" /> 

<ImageView 
    android:id="@+id/imageView50Best" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:adjustViewBounds="true" 
    android:src="@drawable/fifty_best_logo" /> 

</LinearLayout> 

<View 
    android:id="@+id/viewSpacer2" 
    android:layout_width="1dp" 
    android:layout_height="10dip" 
    android:layout_below="@+id/linearLayoutLine1" 
    android:layout_centerHorizontal="true" /> 

<TableLayout 
    android:id="@+id/tableLayoutHeader" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/viewSpacer2" 
    android:layout_centerHorizontal="true" 
    android:background="@color/transparent" > 

<TableRow 
    android:id="@+id/tableRowPhoneNumberLabels" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center" > 

<TextView 
    android:id="@+id/textViewHospital" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Hospital" 
    android:textSize="20sp" 
    android:textColor="@color/white" /> 

<View 
    android:id="@+id/viewSpacerBetweenLabels" 
    android:layout_width="15dp" 
    android:layout_height="1dip" 
    android:layout_below="@+id/tableLayoutHeader" 
    android:layout_centerHorizontal="true" /> 

<TextView 
    android:id="@+id/textViewEmergencyRoom" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Emergency Room" 
    android:textSize="20sp" 
    android:textColor="@color/white" /> 

</TableRow> 

<TableRow 
    android:id="@+id/tableRowPhoneNumbers" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center" > 

<TextView 
    android:id="@+id/textViewHospitalSwitchboard" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="(xxx) xxx-xxxx" 
    android:textSize="20sp" 
    android:textColor="@color/white" /> 

<View 
    android:id="@+id/viewSpacerBetweenPhoneNumbers" 
    android:layout_width="15dp" 
    android:layout_height="1dip" 
    android:layout_below="@+id/tableLayoutHeader" 
    android:layout_centerHorizontal="true" /> 

<TextView 
    android:id="@+id/textViewEmergencyPhone" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="(xxx) xxx-xxxx" 
    android:textSize="20sp" 
    android:textColor="@color/white" /> 

</TableRow> 

</TableLayout> 

<View 
    android:id="@+id/viewSpacer3" 
    android:layout_width="1dp" 
    android:layout_height="15dip" 
    android:layout_below="@+id/tableLayoutHeader" 
    android:layout_centerHorizontal="true" /> 

<TableLayout 
    android:id="@+id/tableLayoutMenu" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/viewSpacer3" 
    android:layout_centerHorizontal="true" 
    android:background="@color/transparent" > 

<TableRow 
    android:id="@+id/tableRow1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center" > 

<ImageButton 
    android:id="@+id/imageDrSearch" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/transparent" 
    android:padding="@dimen/padding_xsmall" 
    android:src="@drawable/icon_dr_search" /> 

<ImageButton 
    android:id="@+id/imageLocations" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/transparent" 
    android:padding="@dimen/padding_xsmall" 
    android:src="@drawable/icon_locations" /> 

</TableRow> 

<TableRow 
    android:id="@+id/tableRow2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center" > 

<ImageButton 
    android:id="@+id/imageSendCard" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@color/transparent" 
    android:padding="@dimen/padding_xsmall" 
    android:src="@drawable/icon_send_card" /> 

<ImageButton 
    android:id="@+id/imageServices" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@color/transparent" 
    android:padding="@dimen/padding_xsmall" 
    android:src="@drawable/icon_services" /> 

</TableRow> 

<TableRow 
    android:id="@+id/tableRow3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center" > 

<ImageButton 
    android:id="@+id/ImageHealthEncyclopedia" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@color/transparent" 
    android:padding="@dimen/padding_xsmall" 
    android:src="@drawable/icon_health_encyclopedia" /> 

<ImageButton 
    android:id="@+id/imageClassesEvents" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@color/transparent" 
    android:padding="@dimen/padding_xsmall" 
    android:src="@drawable/icon_events_classes" /> 

</TableRow> 

<TableRow 
    android:id="@+id/tableRow4" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center" > 

<ImageButton 
    android:id="@+id/imageCareers" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@color/transparent" 
    android:padding="@dimen/padding_xsmall" 
    android:src="@drawable/icon_careers" /> 

<ImageButton 
    android:id="@+id/imageNewsroom" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@color/transparent" 
    android:padding="@dimen/padding_xsmall" 
    android:src="@drawable/icon_newsroom" /> 

</TableRow> 

</TableLayout> 

<View 
    android:id="@+id/viewSpacer4" 
    android:layout_width="1dp" 
    android:layout_height="5dip" 
    android:layout_below="@+id/tableLayoutMenu" 
    android:layout_centerHorizontal="true" /> 

<LinearLayout 
    android:id="@+id/linearLayoutLine3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_below="@+id/viewSpacer4" 
    android:background="@color/lightgrey" > 

<ImageButton 
    android:id="@+id/imageViewWebsite" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@color/transparent" 
    android:padding="@dimen/padding_medium" 
    android:src="@drawable/www_small" /> 

<ImageButton 
    android:id="@+id/imageViewFacebook" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@color/transparent" 
    android:padding="@dimen/padding_medium" 
    android:src="@drawable/facebook_small" /> 

<ImageButton 
    android:id="@+id/imageViewTwitter" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@color/transparent" 
    android:padding="@dimen/padding_medium" 
    android:src="@drawable/twitter_small" /> 

</LinearLayout> 

</RelativeLayout> 

</ScrollView> 

는 기쁨의 제안 이후 업데이트 :

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@drawable/bg" > 

<View 
    android:id="@+id/viewSpacer0" 
    android:layout_width="1dp" 
    android:layout_height="7dip" 
    android:layout_centerHorizontal="true" /> 

<LinearLayout 
    android:id="@+id/linearLayoutLine1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:orientation="horizontal" 
    android:layout_below="@+id/viewSpacer0" > 

<ImageView 
    android:id="@+id/imageLogo" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_weight="2" 
    android:scaleType="center" 
    android:src="@drawable/logo_large" /> 

<View 
    android:id="@+id/viewSpacer1" 
    android:layout_weight="1" 
    android:layout_width="20dp" 
    android:layout_height="1dip" /> 

<ImageView 
    android:id="@+id/imageView50Best" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_weight="2" 
    android:adjustViewBounds="true" 
    android:src="@drawable/fifty_best_logo" /> 

</LinearLayout> 

<TableLayout 
    android:id="@+id/tableLayoutHeader" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/linearLayoutLine1" 
    android:layout_centerHorizontal="true" 
    android:background="@color/transparent" > 

<TableRow 
    android:id="@+id/tableRowPhoneNumberLabels" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center" > 

<TextView 
    android:id="@+id/textViewHospital" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Hospital" 
    android:layout_weight="2" 
    android:textSize="20sp" 
    android:textColor="@color/white" /> 

<View 
    android:id="@+id/viewSpacerBetweenLabels" 
    android:layout_width="15dp" 
    android:layout_height="1dip" 
    android:layout_weight="1" 
    android:layout_below="@+id/tableLayoutHeader" /> 

<TextView 
    android:id="@+id/textViewEmergencyRoom" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Emergency Room" 
    android:layout_weight="2" 
    android:textSize="20sp" 
    android:textColor="@color/white" /> 

</TableRow> 

<TableRow 
    android:id="@+id/tableRowPhoneNumbers" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center" > 

<TextView 
    android:id="@+id/textViewHospitalSwitchboard" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="(xxx) xxx-xxxx" 
    android:textSize="20sp" 
    android:layout_weight="2" 
    android:textColor="@color/white" /> 

<View 
    android:id="@+id/viewSpacerBetweenPhoneNumbers" 
    android:layout_width="15dp" 
    android:layout_height="1dip" 
    android:layout_below="@+id/tableLayoutHeader" 
    android:layout_weight="1" 
    android:layout_centerHorizontal="true" /> 

<TextView 
    android:id="@+id/textViewEmergencyPhone" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="(xxx) xxx-xxxx" 
    android:textSize="20sp" 
    android:layout_weight="2" 
    android:textColor="@color/white" /> 

</TableRow> 

</TableLayout> 

<View 
    android:id="@+id/viewSpacer3" 
    android:layout_width="1dp" 
    android:layout_height="15dip" 
    android:layout_below="@+id/tableLayoutHeader" 
    android:layout_centerHorizontal="true" /> 

<TableLayout 
    android:id="@+id/tableLayoutMenu" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/viewSpacer3" 
    android:layout_centerHorizontal="true" 
    android:background="@color/transparent" > 

<TableRow 
    android:id="@+id/tableRow1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center" > 

<ImageButton 
    android:id="@+id/imageDrSearch" 
    android:background="@color/transparent" 
    android:padding="@dimen/padding_xsmall" 
    android:scaleType="center" 
    android:layout_weight="1" 
    android:src="@drawable/icon_dr_search" /> 

<ImageButton 
    android:id="@+id/imageLocations" 
    android:background="@color/transparent" 
    android:padding="@dimen/padding_xsmall" 
    android:scaleType="center" 
    android:layout_weight="1" 
    android:src="@drawable/icon_locations" /> 

</TableRow> 

<TableRow 
    android:id="@+id/tableRow2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center" > 

<ImageButton 
    android:id="@+id/imageSendCard" 
    android:background="@color/transparent" 
    android:padding="@dimen/padding_xsmall" 
    android:scaleType="center" 
    android:layout_weight="1" 
    android:src="@drawable/icon_send_card" /> 

<ImageButton 
    android:id="@+id/imageServices" 
    android:background="@color/transparent" 
    android:padding="@dimen/padding_xsmall" 
    android:scaleType="center" 
    android:layout_weight="1" 
    android:src="@drawable/icon_services" /> 

</TableRow> 

<TableRow 
    android:id="@+id/tableRow3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center" > 

<ImageButton 
    android:id="@+id/ImageHealthEncyclopedia" 
    android:background="@color/transparent" 
    android:padding="@dimen/padding_xsmall" 
    android:scaleType="center" 
    android:layout_weight="1" 
    android:src="@drawable/icon_health_encyclopedia" /> 

<ImageButton 
    android:id="@+id/imageClassesEvents" 
    android:background="@color/transparent" 
    android:padding="@dimen/padding_xsmall" 
    android:scaleType="center" 
    android:layout_weight="1" 
    android:src="@drawable/icon_events_classes" /> 

</TableRow> 

<TableRow 
    android:id="@+id/tableRow4" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center" > 

<ImageButton 
    android:id="@+id/imageCareers" 
    android:background="@color/transparent" 
    android:padding="@dimen/padding_xsmall" 
    android:scaleType="center" 
    android:layout_weight="1" 
    android:src="@drawable/icon_careers" /> 

<ImageButton 
    android:id="@+id/imageNewsroom" 
    android:background="@color/transparent" 
    android:padding="@dimen/padding_xsmall" 
    android:scaleType="center" 
    android:layout_weight="1" 
    android:src="@drawable/icon_newsroom" /> 

</TableRow> 

</TableLayout> 

<View 
    android:id="@+id/viewSpacer4" 
    android:layout_width="1dp" 
    android:layout_height="5dip" 
    android:layout_below="@+id/tableLayoutMenu" 
    android:layout_centerHorizontal="true" /> 

<LinearLayout 
    android:id="@+id/linearLayoutLine3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_below="@+id/viewSpacer4" 
    android:background="@color/lightgrey" > 

<ImageButton 
    android:id="@+id/imageViewWebsite" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@color/transparent" 
    android:padding="@dimen/padding_medium" 
    android:layout_weight="5" 
    android:src="@drawable/www_small" /> 

<ImageButton 
    android:id="@+id/imageViewFacebook" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@color/transparent" 
    android:padding="@dimen/padding_medium" 
    android:layout_weight="5" 
    android:src="@drawable/facebook_small" /> 

<ImageButton 
    android:id="@+id/imageViewTwitter" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@color/transparent" 
    android:padding="@dimen/padding_medium" 
    android:layout_weight="5" 
    android:src="@drawable/twitter_small" /> 

</LinearLayout> 

+0

리소스/drawable-xxx에있는 img가 올바른 크기로 조정되지 않았을 수 있습니다./또한 프로젝트 중 하나에서이 문제가 발견되었습니다. 오늘이 포토샵 플러그인 (http : //www.cutandslice. me /)를 사용하여 리소스 크기 문제가 발생했습니다 – GhostDerfel

+0

adb 명령이 무시되는 경우를 대비하여 런타임 중에 정확한 화면 크기와 DPI 값이 반환되는지 확인할 수도 있습니다. – TheIT

+0

@TheIT - 의견을 보내 주셔서 감사합니다. 어떻게해야합니까? adb 명령을 실행하면 화면 크기가 변경됩니다. –

답변

1

다른 자원을 * dpi의 폴더 만 화면 밀도가 아니라 화면 크기를 차지하고있다. 이미지 리소스에는 여전히 고유 한 크기가 있습니다. 화면 크기에 따라 공간이 너무 크거나 작을 수 있습니다. 화면 크기 (작은, 보통, 큰, xlarge)에 따라 리소스를 제공하는 옵션이 있지만 이러한 폴더는 화면을 버킷으로 만 나누기 만합니다. 각 버킷은 여전히 ​​서로 다른 화면 크기를 가지며, 서로 가까이있을 것입니다. 따라서 모든 화면에 대해 정확한 리소스 크기를 제공하는 것은 불가능합니다. 대신 레이아웃을 적절하게 확장하도록 지시해야합니다. 예를 들어 지금 당장 android:layout_height="wrap_content",을 사용하면 최상위 레벨 인 RelativeLayout에 화면 밖에서 확장하더라도 길어지기를 원합니다. 대신 스크롤보기를 삭제하고 android:layout_height="match_parent"을 사용하여 화면 크기에 고정하십시오. LinearLayouts 내부에서 android:layout_weight을 사용하여 어떤 객체가 빈 공간을 차지할 지 정의하십시오. ImageViews에서 android:scaleType을 사용하여 이미지 크기를 정의하십시오.

+0

많은 조언을 부탁드립니다. 나는 그 레이아웃을 가지고 놀았 어. 변경 사항은 위의 게시물을 참조하십시오. 조금 개선되었지만 아직 멀어요. 다른 제안? –

+0

무엇이 잘못 되었나요? 상대 레이아웃을 선형 레이아웃으로 변경하고 모든 하위 항목에 대한 가중치를 사용할 수도 있습니다. 또한 작은 화면에는 너무 많은 것을 넣을 수도 있습니다. – GLee

+0

작고 일반적인 화면 (http://developer.android.com/guide/practices/screens_support.html에서 "표 3"으로 정의 됨)에는 아래쪽과 옆면이 잘립니다. 하단은 일부 대형 화면 크기에서 잘립니다. 레이아웃을 모든 크기에서 완벽하게 보이게하려면 어떻게합니까? –