2010-08-04 64 views

Respuesta

66

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> 
+7

PD: debe estar dentro de un RelativeLayout – Alesqui

+1

mejor incluir este PS en la publicación. No funciona sin su PS :) – mente

+2

Esto no es * recomendado ya que crea diseños de adición. Use 'TextView' como se sugiere en otras respuestas. – Tautvydas

2

para dibujar texto directamente sobre el lienzo, haga lo siguiente:

  1. crear un objeto miembro de pintura en myImageView constructor

    Paint mTextPaint = new Paint(); 
    
  2. 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.

+0

¿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

18

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

el problema con esto es que el fondo no se puede escalar. –

+0

@IgorGanapolsky: ¿qué? está disponible en TODOS los niveles de API, comenzando desde 1. –

0

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

1
<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> 
+0

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 –

16

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

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

La imagen estará junto a, pero no en la parte superior de TextView. –

4

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.

+0

¿Qué es android: drawableLeft para aquí? –

+1

He agregado algunos comentarios arriba. –

Cuestiones relacionadas