from - imageview android studio set image
Agregar texto a ImageView en Android (9)
Quiero usar un ImageView
para mostrar algunos mensajes de una manera elegante.
Entonces 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 que contiene tanto un imageView como un textView.
Si eso no es suficiente y quieres algo más elegante como ''dibujar'' texto, necesitas dibujar texto en un lienzo. Hay una muestra aquí: ¿Cómo dibujar un texto RTL (árabe) en un mapa de bits y ordenarlo correctamente?
La mejor opción para usar texto e imagen en una sola vista, pruebe esto:
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableBottom="@drawable/ic_launcher"
android:text="TextView" />
Para agregar un texto a su ImageView
puede hacer esto:
<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 en el lienzo, haga lo siguiente:
Crear un miembro Paint object en
myImageView
constructorPaint mTextPaint = new Paint();
Use
canvas.drawText
en su métodomyImageView.onDraw()
:canvas.drawText("My fancy text", xpos, ypos, mTextPaint);
Explore la documentación de la clase Paint and Canvas para agregar efectos sofisticados.
Puede usar TextView para el mismo propósito, pero si quiere usar lo mismo con ImageView, entonces tiene que crear una clase y extender ImageView y luego utilizar el método onDraw () para pintar el texto en el lienzo. para más detalles, visita http://developer.android.com/reference/android/graphics/Canvas.html
Sé que esta pregunta ya pasó, pero si alguien más se topa con esto, quería que sepan. 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.
También puede usar un TextView y establecer la imagen de fondo a lo que quería en ImageView
. Además, si usaba ImageView
como botón, puede configurarlo para que pueda hacer clic
Aquí hay un código básico para un TextView
que muestra una imagen con texto en la parte superior.
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/your_image"
android:text="your text here" />
Utilice drawalbeLeft / Right / Bottom / Top en TextView para representar la imagen en la posición correspondiente.
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/image"
android:text="@strings/text"
/>
<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>