Mick
Mick

Reputation: 7947

How to get a textview centred on top of an ImageView

I am attempting to get some text to appear in the centre of an ImageView. But using this xml (below) what I see its the text wedged in the top left of the FrameLayout. What did I do wrong?

<FrameLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_weight="1"
  >

        <ImageView
            android:id="@+id/levbut"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:scaleType="centerInside"
            android:src="@drawable/starbut"
             />

    <TextView
        android:id="@+id/tvtest"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello"
        />

</FrameLayout>

Upvotes: 1

Views: 691

Answers (3)

alex
alex

Reputation: 6409

You can either add a gravity to the FrameLayout, a layout_gravity to the textView, or change it to a RelativeLayout and add centerInParent="true".

<FrameLayout
    ...
    android:gravity="center">

or

<FrameLayout
    ... />
    <TextView
        ...
        android:layout_gravity="center" />
</FrameLayout>

or

<ReltiveLayout
    ...>
    <ImageView ... />
    <TextView
        ...
        android:layout_centerInParent="true" />
</RelativeLayout>

Upvotes: 2

arjoan
arjoan

Reputation: 1849

Try this add android:gravity="center" for TextView and change its width and height to Match parent

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" >

<ImageView
    android:id="@+id/levbut"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:scaleType="centerInside"
    android:src="@drawable/star_but" />

<TextView
    android:id="@+id/tvtest"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:text="Hello" 
    android:gravity="center"/>

Upvotes: 0

Andy Res
Andy Res

Reputation: 16043

Change android:layout_gravity="center" with android:gravity="center" for the FrameLayout element.

Upvotes: 0

Related Questions