No se puede dibujar texto a la vista personalizada
Estoy teniendo un problema con el método canvas.drawText ().
Tengo una vista personalizada, como sigue:
- Android mutate () cambia la apariencia de LayerDrawable
- Crear un selector de estilos
- Android: cómo posicionar una imagen ligeramente fuera de una vista
- Android: screenOrientation? ¿Puedes ir al paisaje sólo en dispositivos de alta resolución?
- Cómo desplazamiento mediante programación de un ScrollView a inferior
public class PagerIndicator extends View { @Override public void onDraw(Canvas canvas) { Paint paint = new Paint(); paint.setStyle(Paint.Style.FILL); paint.setColor(Color.GRAY); canvas.drawPaint(paint); paint.setColor(Color.WHITE); paint.setTextSize(10); paint.setAntiAlias(true); paint.setTextAlign(Align.LEFT); canvas.drawText("TEST", 0, 0, paint); }
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ysi.crm.PagerIndicator android:id="@+id/swipe_page_indicator" android:layout_width="fill_parent" android:layout_height="wrap_content"/> </LinearLayout>
El método drawPaint () está funcionando, puedo ver la pintura gris cuando pruebo. Sin embargo, canvas.drawText () no dibuja. No veo ningún texto encima del gris.
He vencido esta cosa a la muerte, no podría encontrar a nadie más que ha tenido este problema, mucho menos una solución. Estaría muy agradecido por cualquier ayuda.
- Uso de ShowcaseView con la aplicación v7 appcompat ActionBar
- Obtener la posición de la vista con respecto a la mayoría de los padres en android
- Android: configurar el diseño de fondo de forma programática
- Añadir icono con el título en CollapsingToolbarLayout
- ¿Dónde ver ejemplos de diseño android.R.layout?
- Vista de desplazamiento horizontal en páginas de desplazamiento horizontal
- Cómo agregar imagen a spinner en Android
- Estilo appcompat-v7 Fondo de menú de la barra de herramientas
Me encontré con esto antes. La coordenada que se establece para dibujar con no es la coordenada superior izquierda del texto. Es la coordenada inferior izquierda del texto.
Debido a esto, su texto probablemente se está dibujando por encima de la parte superior de su vista.
Prueba esto:
public class PagerIndicator extends View { @Override public void onDraw(Canvas canvas) { Paint paint1 = new Paint(); paint.setStyle(Paint.Style.FILL); paint.setColor(Color.GRAY); canvas.drawPaint(paint1); Paint paint2 = new Paint(); paint2.setColor(Color.WHITE); paint2.setTextSize(10); paint2.setAntiAlias(true); paint.setTextAlign(Align.LEFT); canvas.drawText("TEST", 0, 0, paint2); }
Cambiar esta línea:
canvas.drawText("TEST", 0, 0, paint2);
a:
canvas.drawText("TEST", 100, 100, paint2);
- Obtener extras de intenciones antiguas en onResume () después de startActivity (newIntent)
- Acceder al almacenamiento interno del teléfono para insertar el archivo de base de datos SQLite