Android绘制一个带文字的圆
时间: 2023-11-12 15:07:37 浏览: 31
可以通过自定义 View 来实现带文字的圆的绘制。下面给出一个简单的示例代码:
```java
public class CircleTextView extends View {
private Paint mPaint;
private String mText;
public CircleTextView(Context context) {
this(context, null);
}
public CircleTextView(Context context, AttributeSet attrs) {
super(context, attrs);
mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mPaint.setTextSize(30);
mPaint.setColor(Color.BLACK);
}
public void setText(String text) {
mText = text;
invalidate();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
int width = getWidth();
int height = getHeight();
int radius = Math.min(width, height) / 2;
canvas.drawCircle(width / 2, height / 2, radius, mPaint);
if (mText != null) {
float textWidth = mPaint.measureText(mText);
float textHeight = mPaint.descent() - mPaint.ascent();
canvas.drawText(mText, width / 2 - textWidth / 2, height / 2 - textHeight / 2, mPaint);
}
}
}
```
在这个示例中,我们自定义了一个 CircleTextView,并且提供了 setText 方法来设置显示的文本。在 onDraw 方法中,我们首先计算出圆的半径,然后使用 drawCircle 绘制圆。最后,如果有文本需要显示,我们使用 drawText 绘制文本,注意要根据文本的宽度和高度来计算绘制的位置。最终效果如下所示:
![CircleTextView](https://img-blog.csdn.net/2018102817080675?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FhbGJhZG1pbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/75)