как сохранить текст на imageview в Android? - PullRequest
3 голосов
/ 23 февраля 2010

Я хочу отобразить текст на изображении.

Ответы [ 9 ]

4 голосов
/ 06 июня 2011

Это сработало для меня в 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" />

4 голосов
/ 24 февраля 2010

Не уверен, насколько это применимо, но если вы пытаетесь это сделать (псевдокод):

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

Когда вы обнаружите, у вас возникнут проблемы с этим, если вы измените его следующим образом:

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

Возможно, вам будет легче.

Предположим, что вы не после создания производного типа и рисования себя, как предлагают другие.

1 голос
/ 01 июля 2013

Лучший вариант для использования текста и изображения в одном представлении попробуйте это:

<TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        **android:drawableBottom="@drawable/ic_launcher"**
        android:text="TextView" />
1 голос
/ 25 ноября 2011

Вот как я это сделал, и это сработало именно так, как вы просили:

<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

1 голос
/ 23 февраля 2010

Не мог бы он просто поместить ImageView и TextView в RelativeLayout и установить свойства layout_align одного из них для ссылки на другое представление, чтобы они просто перекрывали друг друга, или я что-то упустил? Мне кажется, проще.

1 голос
/ 23 февраля 2010

Вы можете создать новый класс, производный от ImageView. Переопределите метод onDraw, сначала рисуя родительский класс, а затем свой собственный текст.

1 голос
/ 23 февраля 2010

вам придется создать его подкласс и перегрузить метод onDraw, а затем нарисовать графический контекст с помощью метода paintString.

или просто наложить метку поверх ImageView

0 голосов
/ 12 апреля 2013

Я собрал воедино несколько способов, и это работает для меня, с текстом по центру изображения внутри 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> 
0 голосов
/ 06 сентября 2012

Вы также можете попробовать просто 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...