如何在imageView上设置文本?

时间:2011-04-25 11:09:14

标签: android android-layout android-imageview textview

我在屏幕顶部放置了一个应用栏,它看起来如下图所示:

enter image description here

现在我想在图像上设置文本,以便图像如下所示:

enter image description here

如何在图像上设置文字?提前致谢

8 个答案:

答案 0 :(得分:29)

如果您只想让文字居中于图像上,那么您只需要一个TextView,而不是图像视图。在TextView上设置android:background="@drawable/yourImage"

答案 1 :(得分:24)

请尝试以下代码。

<?xml version="1.0" encoding="utf-8"?>

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" 
    android:layout_width="fill_parent"
    android:layout_height="50dp"
    android:background="@drawable/your background image">


            <LinearLayout 
                android:layout_height="fill_parent"
                android:layout_width="fill_parent" 
                android:layout_weight="1"
                android:gravity="center" 
                android:orientation="vertical">

                <TextView 
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" 
                    android:textColor="@color/white"
                    android:textSize="18sp" 
                    android:textStyle="bold"
                    android:singleLine="true" 
                    android:text="Subject"/>

            </LinearLayout>

</LinearLayout>

答案 2 :(得分:21)

我就是这样做的,它完全按照你的要求运作:

<ImageView
    android:id="@+id/myImageView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/myImageSouce" />

<TextView
    android:id="@+id/myImageViewText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/myImageView"
    android:layout_alignTop="@+id/myImageView"
    android:layout_alignRight="@+id/myImageView"
    android:layout_alignBottom="@+id/myImageView"
    android:layout_margin="1dp"
    android:gravity="center"
    android:text="Hello"
    android:textColor="#000000" />

使用此

的相对布局

答案 3 :(得分:8)

  1. 使用FrameLayout (Tutorial)
  2.    
    <FrameLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <ImageView
            android:id="@+id/ImageView01"
            android:layout_height="fill_parent"
            android:layout_width="fill_parent"
            android:src="@drawable/lake"
            android:scaleType="matrix"></ImageView>
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:textColor="#000"
            android:textSize="40dp"
            android:text="@string/top_text" />
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/bottom_text"
            android:layout_gravity="bottom"
            android:gravity="right"
            android:textColor="#fff"
            android:textSize="50dp" />
    </FrameLayout>
    

    或者

    2.将图像用作背景:android:background="@drawable/yourImage"

答案 4 :(得分:2)

有很多方法可以在图像上显示文字

1)你可以用文字制作这个图像.. 2)你可以为textview设置背景(这个图像)。

答案 5 :(得分:2)

如果要在Relative布局上放置任何其他视图的任何视图,则需要在低级视图下方定义顶级视图...例如

<ImageView
    android:id="@+id/myImageView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/myImageSouce" />

<TextView
    android:id="@+id/myImageViewText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="1dp"
    android:gravity="center"
    android:text="Hello"
    android:textColor="#000000" />

答案 6 :(得分:1)

如果我猜对了,你正试图使用​​Header为你做样品..

将背景设置为该图像并将文本视图添加到此类..

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="55px"
    android:background="@drawable/testheader"
    android:layout_width="fill_parent"
    android:orientation="horizontal">           
        <TextView android:id="@+id/quaddeal_header_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="12dip"
            android:text="Campus"
            android:textSize="20sp"
            android:textColor="@color/white"
            android:layout_marginLeft="90dip"/>
</RelativeLayout>

否则您必须使用Framelayout合并布局。

选中此Sample for Frame Layout

答案 7 :(得分:0)

您可以使用FrameLayout在Image上实现文本,如下所示: -

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

    <ImageButton
        android:id="@+id/imgbtnUploadPendingPods"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/com" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:layout_gravity="center"
        android:text="hii"
        android:textAppearance="?android:attr/textAppearanceSmall" />
</FrameLayout>