Java Android,将画布上的绘图文本彼此相邻
我正在努力找到解决这个问题的办法。 基本上,我有3个单独的字符串,它们以不同的颜色绘制在画布上。即: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
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。一切都画在画布上?