【问题标题】:how to set a text over an imageView?如何在 imageView 上设置文本?
【发布时间】:2011-08-12 06:35:28
【问题描述】:

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

现在我想在图像上设置一个文本,使图像如下所示:

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

【问题讨论】:

    标签: android android-layout android-imageview textview


    【解决方案1】:

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

    【讨论】:

    • 但这仅适用于静态图像。例如,如果新闻应用想要在图像上设置标题怎么办?每条新闻的图像和变化
    • @ojonugwaochalifu textView.setBackgroundDrawable()textView.setText()
    【解决方案2】:

    请尝试以下代码。

    <?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>
    

    【讨论】:

    • 这应该是一个 TextView,背景是可绘制对象
    【解决方案3】:

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

    <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" />
    

    为此使用相对布局

    【讨论】:

    • 我经常发现,其中许多不再有效。在这种情况下,我不得不将“android:gravity”更改为android:layout_gravity="center"
    【解决方案4】:
    1. 使用FrameLayout(Tutorial)
    <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"

    【讨论】:

      【解决方案5】:

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

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

      【讨论】:

        【解决方案6】:

        如果您想将任何视图放在相对布局上的任何其他视图上,您​​需要在低级视图下方定义顶级视图...例如

        <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" />
        

        【讨论】:

          【解决方案7】:

          如果我猜对了,您正在尝试使用 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

          【讨论】:

            【解决方案8】:

            您可以使用 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>
            

            【讨论】:

              猜你喜欢
              • 2020-12-20
              • 1970-01-01
              • 1970-01-01
              • 2018-07-05
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多