如何在android中的imageview上保留文本?

时间:2010-02-23 11:23:03

标签: android

我想在图片视图上显示文字。

9 个答案:

答案 0 :(得分:4)

不确定这会适用多少,但如果您正在尝试这样做(伪代码):

<LinearLayout>
    <TextView />
    <ImageView />
</LinearLayout>

正如您所发现的那样,如果您将其更改为此,则会遇到问题:

<LinearLayout Background="YourImagePath">
    <TextView />
</LinearLayout>

你可能会发现这更容易。

假设您不是在创建派生类型之后并且正如其他人所暗示的那样自己绘画。

答案 1 :(得分:4)

这在RelativeLayout中适用于我

<ImageView 
    android:id="@+id/image_ct" 
    android:src="@drawable/categories_bill" 
    android:scaleType="center"
    android:layout_alignParentTop="true"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
/>

<TextView 
    android:id="@+id/catdescription_ct" 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Sample Description"
    android:layout_alignTop="@id/image_ct" 
    android:textColor="#000000" />

答案 2 :(得分:1)

你必须对它进行子类化并重载onDraw方法,然后使用paintString方法在图形上下文中绘制。

或只是在ImageView上叠加标签

答案 3 :(得分:1)

您可以创建一个派生自ImageView的新类。重写onDraw方法,首先绘制父类,然后绘制自己的文本。

答案 4 :(得分:1)

难道他不能只将一个ImageView和一个TextView放在RelativeLayout中,并设置其中一个的layout_align属性来引用另一个视图,这样它们就会相互重叠或者我错过了什么?对我来说似乎更简单。

答案 5 :(得分:1)

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

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

PS:仅适用于RelativeLayout

答案 6 :(得分:1)

在单个视图中使用文本和图像的最佳选择尝试:

<TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        **android:drawableBottom="@drawable/ic_launcher"**
        android:text="TextView" />

答案 7 :(得分:0)

您也可以尝试使用带图像的TextView

<TextView
    app:layout_gravity="center_horizontal"
    android:drawableTop="@drawable/icon"
    android:gravity="center_horizontal"
    android:text="Icon"
    android:textSize="20sp"
    android:textStyle="bold" >
</TextView>

答案 8 :(得分:0)

我将几种方式结合在一起,这对我来说很有用,文本以RelativeLayout中的图像为中心。

<RelativeLayout 
android:layout_width="wrap_content"
android:layout_height="wrap_content" >

<ImageView
    android:id="@+id/grid_item_image"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:contentDescription="line"
    android:src="@drawable/tile1" />

<TextView
    android:id="@+id/grid_item_text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerInParent="true"
    android:gravity="center_horizontal"
    android:text="Line 1"
    android:textColor="#FFFFFF"
    android:textSize="18sp"
    android:textStyle="bold" />
 </RelativeLayout>