我正在做一个AppWidget,在其设置中,我让用户启用/禁用文本阴影。由于我无法通过RemoteViews类调用阴影方法,因此我正在编写一个“绘制”方法,动态绘制小部件及其容器。
但是在绘制文本时,它会变得有点模糊,不像使用TextView时那样清晰。我为文本绘制使用的唯一代码是:
Paint p = new Paint();
p.setAntiAlias(true);
p.setColor(Color.WHITE);
还有什么其他的技巧可以让它更加清晰吗?
我正在做一个AppWidget,在其设置中,我让用户启用/禁用文本阴影。由于我无法通过RemoteViews类调用阴影方法,因此我正在编写一个“绘制”方法,动态绘制小部件及其容器。
但是在绘制文本时,它会变得有点模糊,不像使用TextView时那样清晰。我为文本绘制使用的唯一代码是:
Paint p = new Paint();
p.setAntiAlias(true);
p.setColor(Color.WHITE);
还有什么其他的技巧可以让它更加清晰吗?
Paint paint = new Paint(Paint.LINEAR_TEXT_FLAG | Paint.ANTI_ALIAS_FLAG);
对我有用
textPaint = new Paint();
textPaint.setStyle(Paint.Style.FILL);
textPaint.setAntiAlias(true);
textPaint.setARGB(255, 255, 255, 255);
textPaint.setFakeBoldText(true);
textPaint.setTextSize(textSize);
对我来说似乎工作得很好。
text.setAntiAlias(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);
}
setAntiAlias(boolean)
函数用于设置抗锯齿效果,参数为布尔值类型。此函数自API level 1版本就存在于SDK中。 - Tomas