针对多种屏幕分辨率优化我的应用程序

时间:2014-10-17 21:02:34

标签: android android-layout

我已经完成了我的应用程序,它在我的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.

1 个答案:

答案 0 :(得分:0)

您可以通过在另一个布局文件夹中创建相同的文件来提供替代布局,例如layout-sw600dp用于最小宽度为600dp的屏幕。您可以使用Android Studio的预览屏幕预览它的外观。

查看Android's training以获取更多帮助