2010-05-20 2 views
5

Я делаю AppWidget и в его настройках разрешаю пользователю включать/отключать тень текста. Поскольку я не могу вызвать теневой метод через класс RemoteViews, я делаю метод «рисования», который динамически рисует виджет и его контейнер.Извлечь четкий текст с помощью Canvas.drawText в Android

При рисовании текста он становится размытым и не таким хрустящим, как при использовании TextView. Единственный код, который я использовал для текста картины:

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

Есть ли другая магию мне нужно сделать для того, чтобы стать более четким?

ответ

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

сделал трюк для меня

1

Это мои текстовые настройки краски:

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

, кажется, работает хорошо для меня.

+1

Paint paint = new Paint (Paint.LINEAR_TEXT_FLAG | Paint.ANTI_ALIAS_FLAG); сделал трюк для меня – Tomas

+0

Спасибо за подсказку. Попробуем это и посмотрим, выглядит ли мой текст сейчас лучше. :) – Abhinav

0

textsetAntiAlias(true)(В режиме аппаратного обеспечения) работает только с API 18 и выше, поэтому используйте этот код, чтобы установить тип слоя.

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

False. https://developer.android.com/reference/android/graphics/Paint.html#setAntiAlias(boolean) Это было в sdk, так как уровень API 1 – Tomas

+0

@Tomas Пожалуйста, проверьте мой отредактированный ответ. Как и в API 18, они остановили функцию AntiAlias ​​на программном уровне. –

+0

А, да. Для справок в будущем: http://developer.android.com/guide/topics/graphics/hardware-accel.html#unsupported – Tomas

Смежные вопросы