Android Eclipse - 不幸的是,按钮在 click/touch 上发生了变化

Android Eclipse - Buttons unfortunately changing upon click/touch

我正在构建一个计算器应用程序,但我遇到了按钮问题。

当它是 clicked/touched 时,按钮文本 "jumps" 似乎在按钮的表面上向上了一点。我附上了之前和之后的截图来展示。任何想法为什么会发生这种情况?我在底部附上了我的 XML 文件。如果需要,如果我没有看到任何帮助,我也会附上我的 MainActivity.java。非常感谢。

  <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"
android:background="#8CD11D"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.funkycalc.MainActivtiy\" >

<TableLayout
    android:id="@+id/tableLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true" >

    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <Button
            android:id="@+id/clearb"
            style="?android:attr/buttonStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="CLR"
            android:textStyle="bold" />

        <Button
            android:id="@+id/deleteb"
            style="?android:attr/buttonStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="DEL"
            android:textStyle="bold" />
    </TableRow>

    <TableRow
        android:id="@+id/tableRow2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <Button
            android:id="@+id/oneb"
            style="?android:attr/buttonStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="1"
            android:textStyle="bold" />

        <Button
            android:id="@+id/twob"
            style="?android:attr/buttonStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="2"
            android:textStyle="bold" />

        <Button
            android:id="@+id/threeb"
            style="?android:attr/buttonStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="3"
            android:textStyle="bold" />

        <Button
            android:id="@+id/subtractb"
            style="?android:attr/buttonStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="-"
            android:textStyle="bold" />
    </TableRow>

    <TableRow
        android:id="@+id/tableRow3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <Button
            android:id="@+id/fourb"
            style="?android:attr/buttonStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="4"
            android:textStyle="bold" />

        <Button
            android:id="@+id/fiveb"
            style="?android:attr/buttonStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="5"
            android:textStyle="bold" />

        <Button
            android:id="@+id/sixb"
            style="?android:attr/buttonStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="6"
            android:textStyle="bold" />

        <Button
            android:id="@+id/addb"
            style="?android:attr/buttonStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="+"
            android:textStyle="bold" />
    </TableRow>

    <TableRow
        android:id="@+id/tableRow4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <Button
            android:id="@+id/sevenb"
            style="?android:attr/buttonStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="7"
            android:textStyle="bold" />

        <Button
            android:id="@+id/eightb"
            style="?android:attr/buttonStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="8"
            android:textStyle="bold" />

        <Button
            android:id="@+id/nineb"
            style="?android:attr/buttonStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="9"
            android:textStyle="bold" />

        <Button
            android:id="@+id/divideb"
            style="?android:attr/buttonStyle"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="/"
            android:textStyle="bold" />
    </TableRow>

    <TableRow
        android:id="@+id/tableRow5"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <Button
            android:id="@+id/zerob"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="0"
            android:textStyle="bold" />

        <Button
            android:id="@+id/decimalb"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight=".5"
            android:text="."
            android:textStyle="bold" />

        <Button
            android:id="@+id/multiplyb"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight=".5"
            android:text="x"
            android:textStyle="bold" />
    </TableRow>

    <TableRow
        android:id="@+id/tableRow6"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <Button
            android:id="@+id/equalsb"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="="
            android:textStyle="bold" />
    </TableRow>
</TableLayout>

<TextView
    android:id="@+id/result"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="14dp"

    android:textSize="55sp" />

如果在整个布局中使用 tablelayout 而不是在 i 中使用 Relative,这可能是更好的选择。 Table 与相对布局相比,布局可以更好地组织事物。可能会有帮助

在每个按钮中尝试这个:

android:gravity="center"

您的 ninepatch 图片可能有问题

来自 this tutorial 的下图可以解释问题的原因

"fill area"是写文字的区域。确保您的按下状态图像具有与正常状态图像相同的填充区域。