初学者Android布局

时间:2012-11-15 23:44:27

标签: android android-layout

所以我是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)

1 个答案:

答案 0 :(得分:0)

开发人员指南中的这篇文章介绍了支持不同屏幕尺寸需要了解的所有内容: http://developer.android.com/guide/practices/screens_support.html

如果您希望将所有内容都集中在一起,那么只需使用center_horizo​​ntal标记所有内容......

至于你的号码,或许乘以100,Math.round它,然后除以100?