Cómo mostrar el texto circular con TextView en Android
Quiero mostrar el texto con la forma circular en mi androide application.I saben que se hace con custume textview pero puede algún amigo me dan el código correcto. También estoy adjuntando la imagen que tipo de aspecto que quiero.
- Android.content.res.Resources $ NotFoundException: String resource ID Excepción grave en Main
- Sombra larga de Android TextView
- Android: evita romper la línea en las partes TextView String
- Android enlaza sin primer carácter
- Cómo configurar el estilo o la fuente a texto de un TextView en android?
- Android: agrega texto a la presentación al pulsar el botón
- Cómo obtener el texto exacto de Editar texto y establecer en vista de texto en android
- SetTextcolor utilizando getCurrentTextColor ()
- Cambiar el fondo con la animación cuando el usuario hace clic en él
- mostrar texto en diálogo de alerta
- Android textview relleno entre líneas
- Cambiar el color de texto de un solo ClickableSpan cuando se presiona sin afectar a otros ClickableSpans en el mismo TextView
- Obtener id de TextView en Fragmento de FragmentActivity en ViewPager
Usted puede intentar este código probado y lleno del funcionamiento:
public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new GraphicsView(this));} static public class GraphicsView extends View { private static final String QUOTE = "This is a curved text"; private Path circle; private Paint cPaint; private Paint tPaint; public GraphicsView(Context context) { super(context); int color = Color.argb(127, 255, 0, 255); circle = new Path(); circle.addCircle(230, 350, 150, Direction.CW); cPaint = new Paint(Paint.ANTI_ALIAS_FLAG); cPaint.setStyle(Paint.Style.STROKE); cPaint.setColor(Color.LTGRAY); cPaint.setStrokeWidth(3); setBackgroundResource(R.drawable.heart); tPaint = new Paint(Paint.ANTI_ALIAS_FLAG); tPaint.setStyle(Paint.Style.FILL_AND_STROKE); tPaint.setColor(Color.BLACK); tPaint.setTextSize(50);} @Override protected void onDraw(Canvas canvas) { canvas.drawTextOnPath(QUOTE, circle, 485, 20, tPaint);} } }
La salida será:
Espero que esto ayude.
Cree una vista personalizada y anule el onDraw. En el onDraw, cree una ruta y use drawTextOnPath. Algo como esto. TextToDraw es el texto que desea mostrar. Pintura es cualquier pintura que desee.
@Override onDraw(Canvas canvas){ Path path = new Path(); path.addCircle(x, y, 200, Path.Direction.CW); canvas.drawTextOnPath(textToDraw, path, textX, textY, paint); }
http://developer.android.com/training/custom-views/index.html http://developer.android.com/reference/android/graphics/Canvas.html#drawTextOnPath(java.lang.String, android.graphics .Path, float, float, android.graphics.Paint)
Puedes echar un vistazo al código fuente de APIDemo incluido con el androide SDK en tu directorio SDK.
El ejemplo "Gráficos / Alineación de texto" (archivo TextAlign.java) muestra cómo mostrar un texto a lo largo de una ruta:
A continuación, puede ajustar para construir su pantalla.
Usted tiene implementarlo usando vistas personalizadas como en su método onDraw:
Path path = new Path(); path.addCircle(x, y, radius, Path.Direction.CW); myCanvas.drawTextOnPath(myText, path, offset, 0, myPaint);
Tienes que crear tu propio objeto "Ver" como este
public class YourView extends View { private static final String YOUR_TEXT = "something cool"; private Path _arc; private Paint _paintText; public YourView(Context context) { super(context); _arc = new Path(); RectF oval = new RectF(50,100,200,250);; _arc.addArc(oval, -180, 200); _paintText = new Paint(Paint.ANTI_ALIAS_FLAG); _paintText.setStyle(Paint.Style.FILL_AND_STROKE); _paintText.setColor(Color.WHITE); _paintText.setTextSize(20f); } @Override protected void onDraw(Canvas canvas) { canvas.drawTextOnPath(YOUR_TEXT, _arc, 0, 20, _paintText); invalidate(); } }
Y luego utilizarlo como su TextView 🙂 Espero que esta ayuda
Pruebe el siguiente código.
onDraw(Canvas canvas){ Path path = new Path(); path.addArc(oval, startAngle, sweepAngle) path.addArc(oval, 0, 180) }
Esto puede funcionar ….
No es necesario hacer la vista personalizada. Encuentra Correcto TypeFace
, poner en su proyecto y establecer a su TextView
O utilice Microsoft Office Word Art y copie imágenes en su proyecto
- ¿Cómo puedo encontrar la carpeta de imágenes de la cámara de un teléfono Android?
- Set timeout Diálogo en android?