У меня есть один ImageView. Я хочу показать это изображение, чтобы показать какое-то сообщение причудливо. Поэтому я хочу добавить текст в этот ImageView. Может ли кто-нибудь сказать мне, как я могу это сделать.
Добавление текста в ImageView в Android
Ответ 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