android textview字体描边
时间: 2025-07-12 12:26:45 浏览: 4
在 Android 中为 `TextView` 的字体添加描边效果,可以通过自定义 `Paint` 属性来实现。具体来说,可以使用 `setStyle(Paint.Style.STROKE)` 来设置描边样式,并结合 `setStrokeWidth(float width)` 设置描边的宽度[^1]。
以下是一个完整的代码示例,展示如何为 `TextView` 添加描边效果:
```java
import android.graphics.Paint;
import android.graphics.Typeface;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView textView = new TextView(this);
setContentView(textView);
// 设置文本内容
textView.setText("描边文字");
// 获取 Paint 对象
Paint paint = textView.getPaint();
// 设置描边宽度
float strokeWidth = 4f;
paint.setStrokeWidth(strokeWidth);
// 设置描边样式
paint.setStyle(Paint.Style.STROKE);
// 设置字体颜色(描边颜色)
textView.setTextColor(0xFF000000); // 黑色描边
// 创建一个带有填充效果的 Paint 对象
Paint fillPaint = new Paint();
fillPaint.setColor(0xFFFFFFFF); // 白色填充
fillPaint.setAntiAlias(true);
// 设置字体类型
Typeface typeface = Typeface.create(Typeface.DEFAULT, Typeface.BOLD);
textView.setTypeface(typeface);
// 自定义绘制逻辑
textView.setOnDrawCallback(canvas -> {
// 先绘制描边
canvas.drawText(textView.getText().toString(), 0, textView.getBaseline(), paint);
// 再绘制填充
canvas.drawText(textView.getText().toString(), 0, textView.getBaseline(), fillPaint);
});
}
}
```
### 注意事项
- 在上述代码中,`setStyle(Paint.Style.STROKE)` 用于设置描边样式,而 `setStrokeWidth(float width)` 用于控制描边的粗细[^1]。
- 如果需要同时显示填充和描边效果,则需要通过自定义 `onDraw` 方法,在画布上先绘制描边,再绘制填充效果[^3]。
- 使用 `setAntiAlias(boolean aa)` 可以启用抗锯齿功能,使描边效果更加平滑[^1]。
###
阅读全文
相关推荐

















