2010-05-20 12 views
5

Estoy haciendo un AppWidget y en su configuración dejo que el usuario active/desactive el sombreado de texto. Como no puedo invocar el método shadow a través de la clase RemoteViews, estoy haciendo un método "draw" que describe dinámicamente el widget y su contenedor.Renderizar texto nítido usando Canvas.drawText en Android

Sin embargo, al dibujar el texto, se vuelve un poco borroso y no tan nítido como cuando se usa un TextView. El único código que he utilizado para la pintura de texto es:

Paint p = new Paint(); 
p.setAntiAlias(true); 
p.setColor(Color.WHITE); 

¿Hay alguna otra magia que tengo que hacer para que sea más nítido?

Respuesta

11
Paint paint = new Paint(Paint.LINEAR_TEXT_FLAG | Paint.ANTI_ALIAS_FLAG); 

hizo el truco para mí

1

Estos son mis ajustes de pintura de texto:

textPaint = new Paint(); 
    textPaint.setStyle(Paint.Style.FILL); 
    textPaint.setAntiAlias(true); 
    textPaint.setARGB(255, 255, 255, 255); 
    textPaint.setFakeBoldText(true); 
    textPaint.setTextSize(textSize); 

parece estar funcionando bien para mí.

+1

Pintura de pintura = nueva Pintura (Paint.LINEAR_TEXT_FLAG | Paint.ANTI_ALIAS_FLAG); hizo el truco para mí – Tomas

+0

Gracias por el consejo. Lo probaré y veré si mi texto se ve mejor ahora. :) – Abhinav

0

El textsetAntiAlias(true)(En el modo de hardware) sólo funciona a partir de la API 18 y por encima de lo que utiliza este código para establecer el tipo de capa.

int currentapiVersion = android.os.Build.VERSION.SDK_INT; 
    if (currentapiVersion >= android.os.Build.VERSION_CODES.HONEYCOMB && currentapiVersion < android.os.Build.VERSION_CODES.JELLY_BEAN_MR2) { 
     this.setLayerType(View.LAYER_TYPE_SOFTWARE, null); 
    } 
+1

Falso. https://developer.android.com/reference/android/graphics/Paint.html#setAntiAlias(boolean) Esto ha estado en el SDK desde el nivel de la API 1 – Tomas

+0

@Tomas Por favor, verifique mi respuesta editada. Como en API 18, detuvieron la función AntiAlias ​​en la capa de software. –

+0

Ah, sí. Para referencia futura: http://developer.android.com/guide/topics/graphics/hardware-accel.html#unsupported – Tomas

Cuestiones relacionadas