android - android绘图面板设置绘制文本
问题描述
我做了一个绘图面板。我想在面板背景中添加文本,但我失败了。我不知道为什么。
这是我的代码:
public PaintView(Context context, AttributeSet attrs) {
super(context, attrs);
mPaint = new Paint();
mPaint.setColor(DEFAULT_COLOR);
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setStrokeJoin(Paint.Join.ROUND);
mPaint.setStrokeCap(Paint.Cap.ROUND);
mPaint.setXfermode(null);
mPaint.setAlpha(0xff);
mEmboss = new EmbossMaskFilter(new float[] {1, 1, 1}, 0.4f, 6, 3.5f);
mBlur = new BlurMaskFilter(5, BlurMaskFilter.Blur.NORMAL);
}
public void init(DisplayMetrics metrics) {
int height = metrics.heightPixels;
int width = metrics.widthPixels;
mBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
mCanvas = new Canvas(mBitmap);
currentColor = DEFAULT_COLOR;
strokeWidth = BRUSH_SIZE;
Paint p = new Paint();
p.setTextSize(50);
p.setTextAlign(Paint.Align.CENTER);
p.setColor(Color.BLACK);
mCanvas.drawText("HI", getLeft()+10, getTop()+30, p);
}
protected void onDraw(Canvas canvas) {
canvas.save();
mCanvas.drawColor(backgroundColor);
for (FingerPath fp : paths) {
mPaint.setColor(fp.color);
mPaint.setStrokeWidth(fp.strokeWidth);
mPaint.setMaskFilter(null);
if (fp.emboss)
mPaint.setMaskFilter(mEmboss);
else if (fp.blur)
mPaint.setMaskFilter(mBlur);
mCanvas.drawPath(fp.path, mPaint);
}
canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint);
canvas.restore();
}
我设置了 "HI" drawText
,但它没有显示。
提前致谢。
这是我的代码 https://github.com/cool3690/bsic 我希望我能这样做 在此处输入图像描述
解决方案
推荐阅读
- linux - 如何在 Linux 上运行的 .NET Core 应用中使用 7zip?
- excel - 根据列中的日期将行中的特定单元格复制到月份工作表
- r - 我可以将布尔运算符与 R tidy select 函数一起使用吗
- c# - .Net Core JsonSerializer - 如何禁用特殊字符的编码
- javascript - ReactJS PWA 和 Firebase - IOS 中的 Service Worker 注册失败
- vue.js - Vue 我可以设置 process.env.NODE_ENV
- java - spring-boot @Scheduled 池大小调试
- matlab - 如何导入头文件以在 Simulink 中加载常量值?(对于可生成的代码)
- bootstrap-modal - p:selectOneMenu 被 SB Admin 模板上集成的 primefaces 7 禁用
- r - 在 R 中一次重新缩放多列