2014-10-17 123 views
-2

我已經完成了我的應用程序,它在我的Nexus One模擬器(400x800屏幕)上看起來不錯但是在測試應用程序時,我發現它不能在較大的顯示器。有什麼我可以修復我的佈局來解決縮放問題? *請注意,我的應用程序的測試人員之一是使用LG G3(2560x1440)屏幕,並且很多元素沒有像我們的模擬器中那樣填滿屏幕。 我的截圖低於,這裏是我的佈局文件:優化我的應用程序的多個屏幕分辨率

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" 
    android:id="@+id/rlmain" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#bbcde3" 
    android:orientation="vertical" > 

    <GridLayout 
     android:id="@+id/gridLayout1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:background="#e3e3e3" 
     android:columnCount="2" 
     android:gravity="right" 
     android:orientation="horizontal" > 

     <com.google.ads.AdView 
      android:id="@+id/adView" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      ads:adSize="BANNER" 
      ads:adUnitId="ca-app-pub-6005267993787158/4274166222" 
      ads:loadAdOnCreate="true" > 
     </com.google.ads.AdView> 
    </GridLayout> 

    <Space 
     android:layout_width="match_parent" 
     android:layout_height="12sp" /> 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/textView2" 
     android:layout_below="@+id/gridLayout1" 
     android:layout_marginTop="20dp" 
     android:text="@string/rye" 
     android:textColor="#888888" 
     android:textSize="19sp" /> 

    <RatingBar 
     android:id="@+id/ratingBar1" 
     style="@style/circleRatingBar" 
     android:layout_width="wrap_content" 
     android:layout_height="47dp" 
     android:layout_alignLeft="@+id/textView1" 
     android:layout_below="@+id/textView1" 
     android:isIndicator="false" 
     android:numStars="5" 
     android:stepSize="1" /> 

    <ImageView 
     android:id="@+id/dropDownButton" 
     android:layout_width="48dip" 
     android:layout_height="48dip" 
     android:layout_alignBottom="@+id/ratingBar1" 
     android:layout_toRightOf="@+id/ratingBar1" 
     android:onClick="dropDown" 
     android:src="@drawable/ddb" /> 

    <RelativeLayout 
     android:id="@+id/dropDownLayout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_alignParentLeft="true" 
     android:layout_alignTop="@+id/textView2" 
     android:visibility="gone" > 

     <TextView 
      android:id="@+id/testTV" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:text="Testing dropdown" /> 
    </RelativeLayout> 

    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@+id/ratingBar1" 
     android:layout_marginLeft="14dp" 
     android:layout_marginTop="10dp" 
     android:text="@string/tipTitle" 
     android:textColor="#888888" 
     android:textSize="19sp" /> 

    <FrameLayout 
     android:id="@+id/quizFragment" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/dropDownButton" /> 

    <TextView 
     android:id="@+id/tipText" 
     android:layout_width="175dp" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/textView2" 
     android:layout_marginLeft="14dp" 
     android:background="@drawable/round_corners" 
     android:focusable="false" 
     android:padding="2dp" 
     android:text="10%" 
     android:textColor="#888888" 
     android:textStyle="bold" /> 

    <ImageButton 
     android:id="@+id/greyPlus" 
     android:layout_width="25dp" 
     android:layout_height="25dp" 
     android:layout_below="@+id/textView2" 
     android:layout_marginLeft="10dp" 
     android:layout_marginRight="5dp" 
     android:layout_toRightOf="@+id/textView1" 
     android:background="@drawable/grey_plus" /> 

    <ImageButton 
     android:id="@+id/greyMinus" 
     android:layout_width="25dp" 
     android:layout_height="25dp" 
     android:layout_alignTop="@+id/greyPlus" 
     android:layout_toRightOf="@+id/greyPlus" 
     android:background="@drawable/grey_minus" /> 

    <TextView 
     android:id="@+id/TextView02" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/tipText" 
     android:layout_below="@+id/greyPlus" 
     android:layout_marginTop="10dp" 
     android:text="@string/people_dining_title" 
     android:textColor="#888888" 
     android:textSize="19sp" /> 

    <TextView 
     android:id="@+id/textViewPeople" 
     android:layout_width="175dp" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/TextView02" 
     android:layout_below="@+id/TextView02" 
     android:background="@drawable/round_corners" 
     android:focusable="false" 
     android:padding="2dp" 
     android:text="2" 
     android:textColor="#888888" 
     android:textStyle="bold" /> 

    <ImageButton 
     android:id="@+id/greyPlus2" 
     android:layout_width="25dp" 
     android:layout_height="25dp" 
     android:layout_alignLeft="@+id/greyPlus" 
     android:layout_alignTop="@+id/textViewPeople" 
     android:background="@drawable/grey_plus" /> 

    <ImageButton 
     android:id="@+id/greyMinus2" 
     android:layout_width="25dp" 
     android:layout_height="25dp" 
     android:layout_alignLeft="@+id/greyMinus" 
     android:layout_alignTop="@+id/greyPlus2" 
     android:background="@drawable/grey_minus" /> 

    <TextView 
     android:id="@+id/subtotalTitle" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/textViewPeople" 
     android:layout_below="@+id/greyPlus2" 
     android:layout_marginTop="10dp" 
     android:text="@string/subtotal" 
     android:textColor="#888888" 
     android:textSize="19sp" /> 

    <TextView 
     android:id="@+id/totalTitle" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/subtotalText" 
     android:layout_below="@+id/subtotalText" 
     android:layout_marginTop="10dp" 
     android:text="@string/total" 
     android:textColor="#888888" 
     android:textSize="19sp" /> 

    <TextView 
     android:id="@+id/totalText" 
     android:layout_width="175dp" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/totalTitle" 
     android:layout_alignRight="@+id/subtotalText" 
     android:layout_below="@+id/totalTitle" 
     android:background="@drawable/round_corners_blue" 
     android:focusable="false" 
     android:padding="2dp" 
     android:text="TOTAL" 
     android:textColor="#FFFFFF" /> 

    <EditText 
     android:id="@+id/subtotalText" 
     android:layout_width="175dp" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/subtotalTitle" 
     android:layout_alignRight="@+id/greyMinus2" 
     android:layout_below="@+id/subtotalTitle" 
     android:background="@drawable/round_corners" 
     android:ems="10" 
     android:hint="SUBTOTAL" 
     android:inputType="numberDecimal" 
     android:padding="2dp" 
     android:textColor="#888888" 
     android:textStyle="bold" > 
    </EditText> 

    <TextView 
     android:id="@+id/eppTitle" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/totalText" 
     android:layout_below="@+id/totalText" 
     android:layout_marginTop="10dp" 
     android:text="@string/epp" 
     android:textColor="#888888" 
     android:textSize="19sp" /> 

    <TextView 
     android:id="@+id/eppText" 
     android:layout_width="175dp" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/eppTitle" 
     android:layout_alignRight="@+id/totalText" 
     android:layout_below="@+id/eppTitle" 
     android:background="@drawable/round_corners_blue" 
     android:focusable="false" 
     android:padding="2dp" 
     android:text="" 
     android:textColor="#FFFFFF" /> 

    <Button 
     android:id="@+id/buttonDone" 
     android:layout_width="fill_parent" 
     android:layout_height="50dp" 
     android:layout_below="@+id/eppText" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="10dp" 
     android:background="#3fa9f5" 
     android:fontFamily="helvetica" 
     android:onClick="done" 
     android:text="@string/done" 
     android:textColor="#ffffff" 
     android:textSize="14sp" 
     android:textStyle="bold" /> 

    <ImageView 
     android:id="@+id/settingsButton" 
     android:layout_width="40dp" 
     android:layout_height="40dp" 
     android:layout_alignBottom="@+id/buttonDone" 
     android:layout_alignParentRight="true" 
     android:layout_alignTop="@+id/buttonDone" 
     android:layout_toRightOf="@+id/eppText" 
     android:onClick="openSettings" 
     android:src="@drawable/smallgear" /> 

</RelativeLayout> 

Nexus One emulator.

+0

我不知道,你想達到什麼... – 2014-10-17 22:24:18

+0

我想解決擴展性問題,但我不知道從哪裏開始 – 2014-10-18 12:19:18

+0

確定。請用'uiautomatorviewer'創建這個佈局的快照。你可以用'android-sdk \ tools \ uiautomatorviewer.bat'來啓動它。開始後,使用菜單欄中的按鈕創建佈局的「截圖」_。將其保存到xml中,並上傳到某處。我將能夠使用相同的程序打開該轉儲。我認爲,這比xml更容易審查。 – 2014-10-18 20:24:57

回答

0

您可以通過在另一個佈局文件夾創建相同的文件提供可供選擇的佈局,例如layout-sw600dp用於最小寬度爲600dp的屏幕。您可以使用Android Studio的預覽屏幕預覽它的外觀。

退房Android's training更多的幫助

+0

不錯,不好我會說不要那樣做!您無法爲每種可能的屏幕尺寸創建佈局。使用'match_parent'和類似的東西創建'響應式'設計,這將在每個屏幕上顯示出良好的效果。我會用這種靈魂來爲小型手機,手機,平板電腦和平板電腦創造不同的設計。 ('小','正常'等...) – 2014-10-17 22:31:32

+0

小,正常,大是爲舊片。使用sw前綴是新的方法,因爲有許多不同的屏幕尺寸。顯然,你應該使用dp和match_parent來說明不同的屏幕密度,但是當某些屏幕比其他屏幕具有更多的dp時,可以提供具有更多功能的佈局 – 2014-10-19 16:58:49