Подтвердить что ты не робот

Добавление текста в ImageView в Android

У меня есть один ImageView. Я хочу показать это изображение, чтобы показать какое-то сообщение причудливо. Поэтому я хочу добавить текст в этот ImageView. Может ли кто-нибудь сказать мне, как я могу это сделать.

4b9b3361

Ответ 1

Чтобы добавить текст в ImageView, вы можете сделать это:

<RelativeLayout> // Only works inside a RelativeLayout
    <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" />
 </RelativeLayout>

Ответ 2

Вы также можете использовать TextView и установить фоновое изображение на то, что вы хотели в ImageView. Кроме того, если вы использовали кнопку ImageView в качестве кнопки, вы можете установить ее нажатием кнопки

Вот базовый код для TextView, который показывает изображение с текстом поверх него.

<TextView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/your_image"
    android:text="your text here" />

Ответ 3

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

<TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:drawableBottom="@drawable/ic_launcher"

        android:text="TextView" />

Ответ 4

Используйте drawalbeLeft/Right/Bottom/Top в TextView для рендеринга изображения в соответствующем положении.

        <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawableLeft="@drawable/image"    
        android:text="@strings/text" 
        />

Ответ 5

Я знаю, что этот вопрос был и ушел, но если кто-то еще споткнулся об этом, я хотел сообщить им об этом. Это может показаться необъяснимым, но вы можете использовать кнопку с настраиваемым кликом или false или что-то еще. Это связано с тем, что кнопка позволяет добавить в текст drawableLeft, drawableRight, drawableTop и т.д.

  <Button
  android:id="@+id/button1"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:background="@drawable/border_box1"
  android:drawableLeft="@drawable/ar9_but_desc"
  android:padding="20dp"
  android:text="@string/ar4_button1"
  android:textColor="@color/white"
  android:textSize="24sp" />

Новая информация: Кнопка может иметь значки в drawableLeft, drawableRight, drawableTop и drawableBottom. Это делает стандартную кнопку более гибкой, чем кнопка изображения. Левый, правый, верхний и т.д. - это отношение к тексту в кнопке. Вы можете иметь несколько ярлыков на кнопке, например, один слева, один справа и текст посередине.

Ответ 6

С помощью FrameLayout вы можете поместить текст поверх изображения, а также рамочный макет, содержащий как ImageView, так и TextView.

Если этого недостаточно, и вам нужно что-то более необычное, как текст "рисования", вам нужно нарисовать текст на холсте - образец здесь: Как нарисовать RTL-текст (арабский ) на растровое изображение и правильно ли он упорядочен?

Ответ 7

Чтобы нарисовать текст прямо на холсте, выполните следующие действия:

  • Создайте объект Paint в конструкторе myImageView

    Paint mTextPaint = new Paint();
    
  • Используйте canvas.drawText в вашем методе myImageView.onDraw():

    canvas.drawText("My fancy text", xpos, ypos, mTextPaint);
    

Изучите документацию класса Paint и Canvas для добавления причудливых эффектов.

Ответ 8

    <FrameLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="center_horizontal"
        android:layout_weight="30" >

        <ImageButton
            android:id="@+id/imgbtnUploadPendingPods"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:contentDescription="@string/hello_world"
            android:src="@drawable/upload_icon" />

        <TextView
            android:id="@+id/textView1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:paddingTop="30dp"
            android:text="@string/pendingpods"
            android:textAppearance="?android:attr/textAppearanceSmall" />
    </FrameLayout>

Ответ 9

Вы можете использовать TextView с той же целью. Но если вы хотите использовать то же самое с ImageView, вам нужно создать класс и расширить ImageView, а затем использовать метод onDraw(), чтобы нарисовать текст на холсте. для более подробной информации посетите http://developer.android.com/reference/android/graphics/Canvas.html