Quiero usar un ImageView
para mostrar algunos mensajes de una manera elegante.Agregar texto a ImageView en Android
Así que quiero agregar texto a este ImageView
. ¿Como hacer eso?
Quiero usar un ImageView
para mostrar algunos mensajes de una manera elegante.Agregar texto a ImageView en Android
Así que quiero agregar texto a este ImageView
. ¿Como hacer eso?
Con FrameLayout puede colocar un texto encima de una vista de imagen, el diseño de marco contiene tanto un imageView como un textView.
Si eso no es suficiente y quieres algo más elegante como 'dibujo' de texto, es necesario dibujar texto en un lienzo - una muestra está aquí: How to draw RTL text (Arabic) onto a Bitmap and have it ordered properly?
Para añadir un texto a su ImageView
puede hacerlo :
<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>
para dibujar texto directamente sobre el lienzo, haga lo siguiente:
crear un objeto miembro de pintura en myImageView
constructor
Paint mTextPaint = new Paint();
Uso canvas.drawText
en su método de myImageView.onDraw()
:
canvas.drawText("My fancy text", xpos, ypos, mTextPaint);
Explorar pintura y documentación de la clase Canvas para añadir efectos de fantasía.
¿podría ayudarme por el camino inverso, me refiero a cómo obtener el texto de ImageView existente (que se dibujó en el camino anterior) en Android? – aida
También puede usar un TextView y establecer la imagen de fondo a la que desea en el ImageView
. Además, si usaba el ImageView
como un botón, puede configurarlo como 0-clics
Aquí hay un código básico para un TextView
que muestra una imagen con el texto encima.
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/your_image"
android:text="your text here" />
el problema con esto es que el fondo no se puede escalar. –
@IgorGanapolsky: ¿qué? está disponible en TODOS los niveles de API, comenzando desde 1. –
Puede utilizar la Vista de Texto para el mismo propósito, pero si usted desea utilizar el mismo con el ImageView entonces usted tiene que crear una clase y se extiende el ImageView a continuación, utilizar el método onDraw() para pintar el texto en al lienzo. para más información, visita a http://developer.android.com/reference/android/graphics/Canvas.html
<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>
No se preocupe, solo use el botón de imagen en MARCADO DISEÑO y arrastre VISTA DE TEXTO en el botón de imagen. Hecho Si desea esta publicación, visite mi sitio www.krsolutions.in y haga clic en el botón Me gusta parte inferior del sitio –
mejor opción para utilizar el texto y la imagen en una sola vista intente esto:
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableBottom="@drawable/ic_launcher"
android:text="TextView" />
Uso drawalbeLeft/derecha/abajo/hacia arriba en la Vista de Texto a la imagen de render en los respectivos posición.
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/image"
android:text="@strings/text"
/>
La imagen estará junto a, pero no en la parte superior de TextView. –
Sé que esta pregunta ha pasado y se ha ido, pero si alguien más tropezó con esto, quería hacerles saber. Esto puede sonar como algo poco intuitivo, pero podría usar un botón con un conjunto de clics en falso o lo que sea. Esto se debe a que un botón permite establecer drawableLeft, DrawableRight, DrawableTop, etc. además del texto.
<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" />
Nueva Información: Un botón puede tener iconos en drawableLeft, drawableRight, drawableTop y drawableBottom.Esto hace que un botón estándar sea mucho más flexible que un botón de imagen. La izquierda, derecha, arriba, etc. es la relación con el texto en el botón. Puede tener varios estilos arrastrables en el botón, por ejemplo, uno a la izquierda, otro a la derecha y el texto en el medio.
¿Qué es android: drawableLeft para aquí? –
He agregado algunos comentarios arriba. –
PD: debe estar dentro de un RelativeLayout – Alesqui
mejor incluir este PS en la publicación. No funciona sin su PS :) – mente
Esto no es * recomendado ya que crea diseños de adición. Use 'TextView' como se sugiere en otras respuestas. – Tautvydas