1

所以我是 Android 开发的新手,对布局有疑问。当我在 Eclipse 中创建我的应用程序时,我对其进行了设置,以便我可以看到它在 Nexus S(4 英寸,480 x 800)上的样子。当我在我的 Exhibit 2 4G(3.7 英寸,480 x 800)上打开它时,它看起来很棒,但是当我在 Nexus 7 上打开它时它看起来很糟糕。按钮在错误的位置,事情看起来不像相同的。我假设这与布局有关?当我在 java 中创建 Windows 应用程序时,我使用诸如边框布局、网格布局、流布局、蚀刻等布局,然后将其添加到框架中。这样,无论我调整多大的窗口,它看起来总是一样的。你如何在 Android 中做到这一点?还有,有点跑题了 但是当在文本框中显示数字时,如何使它只显示到百分之一?我开始创建处理小费、销售价格、蚀刻的应用程序,并且不需要最终计算的价格到小数点后 5 位。

这是我的布局代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".Main" >

    <TextView
        android:id="@+id/tagpricetext"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="18dp"
        android:layout_marginTop="21dp"
        android:text="Enter tag price:"
        android:textAppearance="?android:attr/textAppearanceLarge"
        tools:ignore="HardcodedText" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tagpricetext"
        android:layout_marginTop="36dp"
        android:layout_toLeftOf="@+id/tagprice"
        android:text="Enter % off:"
        android:textAppearance="?android:attr/textAppearanceLarge"
        tools:ignore="HardcodedText" />

    <Button
        android:id="@+id/calc"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/tagpricetext"
        android:layout_alignRight="@+id/percentoff"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="31dp"
        android:text="Calculate"
        tools:ignore="HardcodedText" />

    <TextView
        android:id="@+id/saleprice"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/textView2"
        android:layout_alignBottom="@+id/textView2"
        android:layout_toRightOf="@+id/textView1"
        android:text="     "
        android:textAppearance="?android:attr/textAppearanceLarge"
        tools:ignore="HardcodedText" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/tagpricetext"
        android:layout_alignParentTop="true"
        android:orientation="vertical"
        tools:ignore="UselessLeaf" >

    </LinearLayout>

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/calc"
        android:layout_below="@+id/calc"
        android:layout_marginTop="20dp"
        android:text="Sale Price: $"
        android:textAppearance="?android:attr/textAppearanceLarge"
        tools:ignore="HardcodedText" />

    <EditText
        android:id="@+id/tagprice"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/tagpricetext"
        android:layout_marginLeft="18dp"
        android:layout_toRightOf="@+id/tagpricetext"
        android:ems="10"
        android:inputType="numberDecimal" >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/percentoff"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/tagprice"
        android:layout_alignTop="@+id/textView1"
        android:ems="10"
        android:inputType="numberDecimal" />

</RelativeLayout>

这是一个截图: https ://www.dropbox.com/sh/cq327dyhzzb1af6/PjRXqS2DWc/screenshot.jpg

提前致谢!

布兰登

三星展览 2 4G (T-Mobile)

4

1 回答 1

1

开发人员指南中的这篇文章涵盖了您需要了解的有关支持不同屏幕尺寸的所有信息:http: //developer.android.com/guide/practices/screens_support.html

如果您希望将所有内容居中,则只需将其全部标记为 center_horizo​​ntal ...

至于你的数字,也许乘以 100,Math.round 它,然后除以 100?

于 2012-11-16T01:43:39.717 回答