2014-10-16 70 views
0

我正在构建一个android应用程序,我试图设置我的布局没有任何成功。 我到处搜索,似乎无法找到任何解决方案。在ImageView上设置TextView - Android Layouts

我需要在图像上放置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

回答

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下面!

我希望这将有助于;)

+0

您好,感谢您的答复。 我刚刚尝试过,但它在中心位置,我需要中心10 DP以上..我该怎么做呢? – EpicSyntax 2014-10-16 16:21:58

+0

我编辑了我的答案。在TextView中放置一个包装器,它将设置边距。试试这个......祝你好运。 @ Pro5per – 2014-10-16 16:30:43

+0

如果它不起作用,为android:layout_centerVertical =“true”更改android:layout_centerInParent =“true”..以防万一它失败。 – 2014-10-16 16:32:25

0

你可以把你2的TextView的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> 
+0

已经做到了,但我需要的文字是10dp以上的中心,并想法如何实现这一目标? – EpicSyntax 2014-10-16 16:23:21