在ImageView - Android布局上设置TextView

时间:2014-10-16 16:04:28

标签: android android-layout

我正在构建一个Android应用程序,我正在尝试设置我的布局而没有任何成功。 我到处搜索,似乎找不到任何解决办法。

我需要在图像上放置2个文本视图。 第一个文本视图需要在图像的垂直中心上方大约10dp。 第二个文本视图应位于文本视图1下方。

这是我的代码到目前为止,虽然它不起作用。 谁能在这里告诉我我错过了什么或我做错了什么?

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
android:orientation="vertical"
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.boromedia.parve.MainActivity" >

<RelativeLayout
    android:id="@+id/blueOvalLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_marginBottom="20dp"
    android:layout_marginTop="75sp" >

    <ImageView
        android:id="@+id/blueOval"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:scaleType="centerInside"
        android:src="@drawable/blueoval" />

    <ImageView
        android:id="@+id/greenOval"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:scaleType="centerInside"
        android:src="@drawable/greenoval_small"
        android:visibility="gone" />

    <TextView
        android:id="@+id/greenOvalText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="65dp"
        android:gravity="center|center_vertical"
        android:text="@string/counter_activity_oval_done"
        android:textColor="#fff"
        android:textSize="28sp"
        android:visibility="gone" />

    <TextView
        android:id="@+id/blueOvalText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:text="@string/counter_activity_oval_text1"
        android:textColor="#fff"
        android:textSize="18sp" />

    <TextView
        android:id="@+id/blueOvalTimer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/blueOvalText"
        android:layout_centerHorizontal="true"
        android:text="@string/counter_default"
        android:textColor="#fff"
        android:textSize="25sp" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:orientation="vertical" >
    </LinearLayout>

</RelativeLayout>

<TextView
    android:id="@+id/head_title"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="15dp"
    android:gravity="center_vertical|center"
    android:text="@string/main_title"
    android:textSize="30sp" />

<Button
    android:id="@+id/stopButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:background="@android:color/transparent"
    android:text="@string/counter_activity_stop_button"
    android:textSize="20sp" />

a picture of how it is now

2 个答案:

答案 0 :(得分:1)

尝试此解决方法:将textView更改为:

   <RelativeLayout
        android:id="@+id/wrapper"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_marginBottom="10dp" >

        <TextView
            android:id="@+id/blueOvalText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/counter_activity_oval_text1"
            android:textColor="#fff"
            android:textSize="18sp" />
    </RelativeLayout>

这是设置10dp边距的包装器。 不要忘记你的第二个textview应该在包装器下面,而不是在textview下面!

我希望这会有所帮助;)

答案 1 :(得分:0)

您可以将2 TextView放在LinearLayout中,该LinearLayout将在父对象中居中:

<LinearLayout
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:orientation="vertical"
   android:layout_centerInParent="true" >

<TextView
    android:id="@+id/blueOvalText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:text="@string/counter_activity_oval_text1"
    android:textColor="#fff"
    android:textSize="18sp" />

<TextView
    android:id="@+id/blueOvalTimer"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/blueOvalText"
    android:layout_centerHorizontal="true"
    android:text="@string/counter_default"
    android:textColor="#fff"
    android:textSize="25sp" />
</LinearLayout>