Java Android,将画布上的绘图文本彼此相邻

Java Android,将画布上的绘图文本彼此相邻,java,android,Java,Android,我正在努力找到解决这个问题的办法。 基本上,我有3个单独的字符串,它们以不同的颜色绘制在画布上。即: Canvas.drawtext(text, x, y, mpaint1); Canvas.drawtext(text2, x, y, mpaint2); Canvas.drawtext(text3, x, y, mpaint3); 此时,使用x轴和Px将它们彼此相邻放置。这是一个解决方案,但在现实世界中不起作用。 dpi越高,Px越小 我试过了,Html不起作用,我试过SpannableStr

我正在努力找到解决这个问题的办法。 基本上,我有3个单独的字符串,它们以不同的颜色绘制在画布上。即:

Canvas.drawtext(text, x, y, mpaint1);
Canvas.drawtext(text2, x, y, mpaint2);
Canvas.drawtext(text3, x, y, mpaint3);
此时,使用x轴和Px将它们彼此相邻放置。这是一个解决方案,但在现实世界中不起作用。 dpi越高,Px越小

我试过了,Html不起作用,我试过SpannableString,但我似乎甚至无法让android studio达到公认的SpannableString。我似乎也无法导入Java.awt.graphics

补充说明:我正在扩展canvaswatchfaveservice


任何帮助都将不胜感激。多谢各位

我对你的问题有不同的解决办法

你应该选择一个垂直方向的
lineraralayout
,有3个
TextView
,然后将文本设置为TextView,然后你将得到位图表单
lineraralayout
,并在画布上绘制位图

通过这种方式,您还可以自由设置
TextView
的背景色、文本颜色、字体样式和所有其他属性

public static Bitmap loadBitmapFromView(View v) {
    Bitmap b = Bitmap.createBitmap( v.getLayoutParams().width, v.getLayoutParams().height, Bitmap.Config.ARGB_8888);                
    Canvas c = new Canvas(b);
    v.layout(v.getLeft(), v.getTop(), v.getRight(), v.getBottom());
    v.draw(c);
    return b;
}

试试这个
canvas.drawText(text,(int)TypedValue.applyDimension(TypedValue.COMPLEX\u UNIT\u DIP,x,getResources().getDisplayMetrics()),y,mpain1)谢谢你的回复。我有点理解,但我需要调用或导入typedvalue吗?因为它只是显示红色的自动取款机。无法识别它。是的,您必须导入它。将光标放在TypedValue上,然后
Lalt+Enter
将为您提供导入选项。它实际上没有为我提供导入所有内容的选项,但是。我不太确定您的意思是什么?但是我没有链接到任何xml。一切都画在画布上?