2014-10-17 154 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