android textview 黑色字体 白色描边 重写方法实现
时间: 2023-08-23 12:04:01 浏览: 342
Android为TextView添加字体库和设置描边的方法
要在Android的TextView中实现黑色字体白色描边效果,并通过重写TextView的onDraw方法来实现,可以参考以下示例代码:
```java
public class OutlinedTextView extends TextView {
private Paint strokePaint;
public OutlinedTextView(Context context) {
super(context);
init();
}
public OutlinedTextView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public OutlinedTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private void init() {
strokePaint = new Paint();
strokePaint.setStyle(Paint.Style.STROKE);
strokePaint.setStrokeWidth(3);
strokePaint.setColor(Color.WHITE);
}
@Override
protected void onDraw(Canvas canvas) {
TextPaint textPaint = getPaint();
textPaint.setStyle(Paint.Style.FILL);
textPaint.setColor(Color.BLACK);
String text = getText().toString();
canvas.drawText(text, 0, text.length(), 0, getTextSize(), strokePaint);
canvas.drawText(text, 0, text.length(), 0, getTextSize(), textPaint);
}
}
```
在上述代码中,我们创建了一个名为OutlinedTextView的自定义TextView子类。在构造方法中,我们初始化了一个用于绘制描边的Paint对象,并设置其样式、宽度和颜色。
然后,在重写的onDraw方法中,我们首先获取TextPaint对象,将其样式设置为填充并将颜色设置为黑色。然后,我们使用Canvas的drawText方法分别绘制了两次文本,一次是描边效果,一次是填充效果。通过调整绘制的位置,可以实现描边效果。
最后,在布局文件中使用OutlinedTextView代替普通的TextView即可实现黑色字体白色描边的效果。
```xml
<com.example.app.OutlinedTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:textSize="24sp"/>
```
这样设置后,OutlinedTextView将显示黑色字体,并带有白色的描边效果。
阅读全文