如何在没有translateY的情况下手动移动ImageView

时间:2013-07-19 03:34:53

标签: android android-layout android-imageview android-framelayout

我已经开始了一个布局,它应该是这样的:

theory

但是我很难将3 ImageView(红色)移动到确切的位置。这是我能得到的:

actual

现在我的问题是,我想将三个ImageView设置为可点击,以便路由到相应的屏幕,但这不能应用于我的布局,因为我只是使用translateY向下移动ImageView(蓝色)例如,60dp。真正的ImageView(蓝色)位置比ImageView(aqua)的实际显示高60dp。所以点击它不会影响任何事情。 这是我的xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/mypage_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/silver" >

<FrameLayout
    android:id="@+id/frame"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <ImageView
        android:id="@+id/table_1"
        android:layout_width="match_parent"
        android:layout_height="180dp"
        android:adjustViewBounds="true"
        android:background="@color/green" />

    <ImageView
        android:id="@+id/btn_top_page"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:adjustViewBounds="true"
        android:background="@color/maroon"
        android:clickable="true" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <RelativeLayout
            android:id="@+id/relative_left"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_toLeftOf="@+id/relative_center" >

            <ImageView
                android:id="@+id/btn_left"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:clickable="true"
                android:src="@color/aqua"
                android:translationY="60dp" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/btn_left"
                android:layout_centerHorizontal="true"
                android:text="Left"
                android:textColor="#FFFFFF"
                android:translationY="65dp" />
        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/relative_center"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_centerHorizontal="true"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="20dp" >

            <ImageView
                android:id="@+id/btn_center"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:clickable="true"
                android:src="@color/fuchsia"
                android:translationY="70dp" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/btn_center"
                android:layout_centerHorizontal="true"
                android:text="Center"
                android:textColor="#FFFFFF"
                android:translationY="75dp" />
        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/relative_right"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_toRightOf="@id/relative_center" >

            <ImageView
                android:id="@+id/btn_right"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:clickable="true"
                android:src="@color/gray"
                android:translationY="60dp" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/btn_right"
                android:layout_centerHorizontal="true"
                android:text="Right"
                android:textColor="#FFFFFF"
                android:translationY="65dp" />
        </RelativeLayout>
    </RelativeLayout>
</FrameLayout>

这是代码应该做的吗? 任何帮助都可以。非常感谢你。

1 个答案:

答案 0 :(得分:1)

尝试使用layout_marginTop而不是translateY。