在Android中使用Canvas.drawText渲染清晰的文本

时间:2010-05-20 12:59:24

标签: android android-widget

我正在做一个AppWidget,在我的设置中,我让用户启用/禁用文本阴影。由于我无法通过RemoteViews类调用shadow方法,因此我正在使用“draw”方法动态绘制窗口小部件及其容器。

当绘制文本时,它会变得有点模糊,而不像使用TextView时那样清晰。我用于文本绘画的唯一代码是:

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

我还需要做其他任何魔术让它变得更加清晰吗?

3 个答案:

答案 0 :(得分:13)

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

为我做了伎俩

答案 1 :(得分:1)

这些是我的文字颜料设置:

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

似乎对我有用。

答案 2 :(得分:0)

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);
    }