2012-02-06 5 views
2

Android 앱을 개발했지만 때로는 사용자가 나를 전화하여 레이아웃이 기기에 맞지 않는다고 알려주는 경우가 있습니다. 원인은 화면 크기와 밀도가 다른 기기에서 안드로이드가 작동한다는 것입니다. 나는 모든 유형을 다루려고 노력하지만, 나는 그것을 바로 잡을 때 다른 것들이 틀리게된다. 조금도! 한 개의 드로어 블 폴더로 하나의 레이아웃을 만들고 다른 화면 크기의 기능으로 레이아웃을 확장하는 데 사용할 수있는 방법이 있습니까? 고맙습니다!! 내가 여기서 시작 권하고 싶습니다 :android에서 레이아웃을 조정하는 방법

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent" android:background="@drawable/sfondo"> 
    <LinearLayout android:id="@+id/linearLayout2" 
     android:layout_height="wrap_content" android:layout_width="match_parent" 
     android:orientation="vertical"> 
     <LinearLayout android:id="@+id/linearLayout1" 
      android:layout_height="fill_parent" android:weightSum="1" 
      android:layout_width="fill_parent" android:orientation="horizontal"> 
      <ImageView android:layout_height="wrap_content" android:id="@+id/imageView1" 
       android:src="@drawable/trovachiavi_contatti" android:layout_width="wrap_content" 
       android:layout_marginTop="15dp" android:layout_marginLeft="20dp"></ImageView> 
      <ImageButton android:id="@+id/infoButton" 
       android:background="@null" android:layout_height="47dp" 
       android:layout_marginLeft="5dip" android:layout_weight="0.25" 
       android:layout_marginTop="15dip" android:src="@drawable/info_mini" 
       android:layout_width="47dp"> 
      </ImageButton> 
     </LinearLayout> 
    </LinearLayout> 
    <RelativeLayout 
     android:id="@+id/relativeLayout1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 
     <LinearLayout 
      android:id="@+id/layoutGif" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" > 
      <trova.chiavi.sd.GIFView 
      android:layout_gravity="center" 
      android:layout_height="220dp" android:layout_width="210dp" android:id="@+id/GIFSingle" 
      android:layout_marginLeft="40dp"></trova.chiavi.sd.GIFView> 
     </LinearLayout> 
     <LinearLayout 
      android:id="@+id/layoutBanner" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentTop="true" 
      android:orientation="vertical" 
     > 
      <TextView 
       android:id="@+id/testoBanner" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Medium Text" 
       android:layout_gravity="center" 
       android:gravity="center" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:layout_marginTop="10dp" 
       android:textColor="@android:color/black" 
       android:maxLines="2"/> 

      <ImageView 
       android:id="@+id/Banner" 
       android:layout_width="match_parent" 
       android:layout_height="144dp" 
       android:layout_gravity="center" 
       android:src="@drawable/box_codice" 
       android:layout_marginTop="5dp" 
      /> 
     </LinearLayout> 
    </RelativeLayout> 
    <LinearLayout 
     android:id="@+id/linearLayout3" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:layout_marginTop="1dp"> 
     <ImageButton 
      android:id="@+id/avvia_cerca" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:background="@null" 
      android:src="@drawable/chiave" 
      android:layout_gravity="center"/> 
     <TextView 
      android:id="@+id/testoRicercaSingle" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="center" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:textColor="@android:color/black" 
      android:layout_gravity="center"/> 
    </LinearLayout> 
</LinearLayout> 
+0

xml 파일 중 하나의 예제를 보여주십시오. – Blundell

+0

편집보기 :) 샘플 xml 추가 – JackTurky

답변

1

layoutSum 및 layoutWeight을 사용하면 모든 콘텐츠의 크기를 퍼센트로 조정할 수 있습니다. 나는 linearlayout과이 매개 변수로 작업하고 모든 화면 크기에 대해 하나의 레이아웃 만 수행합니다 !! :)

2

짧은 대답은 '예 : 특히 http://developer.android.com/training/multiscreen/index.html

페이지에서 "다른 화면 크기를 지원하는"참고 이 내 주요 XML 레이아웃의 예입니다

하드 코드 된 크기 대신 "wrap_content"및 "match_parent"크기 값을 사용하면 해당보기에 필요한 공간 만 사용하거나 사용 가능한 공간을 채우기 위해 확장 할 수 있습니다.

로직에 조금 익숙해 져 있지만 일단 사용하면 잘 작동합니다.

1

weightSum 속성을 사용할 수 있습니다. 부모 레이아웃에 넣으십시오. 어린이 뷰에서

다음
android:weightSum="100" 

보기 1

android:layout_weight="50" 

이것은 두 개의보기가 화면을 채울 수 있도록합니다 2

android:layout_weight="50" 

보기

을 넣어. 이것은 나를 위해 일했다.

관련 문제