Android 绘制文字尺寸:所有尺寸和图像的通用尺寸
所以我这里有点问题: 我的应用程序使用paint将文本设置为图像视图画布:Android 绘制文字尺寸:所有尺寸和图像的通用尺寸,android,android-canvas,Android,Android Canvas,所以我这里有点问题: 我的应用程序使用paint将文本设置为图像视图画布: textPaint = new Paint(); textPaint.setARGB(255, 255, 255, 255); textPaint.setTypeface(memeType); textPaint.setColor(defaultTextColor); textPaint.setTextSize(textSize); //now 40 然后我就画了我从编辑文本中得到的文本: canvas.drawTex
textPaint = new Paint();
textPaint.setARGB(255, 255, 255, 255);
textPaint.setTypeface(memeType);
textPaint.setColor(defaultTextColor);
textPaint.setTextSize(textSize); //now 40
然后我就画了我从编辑文本中得到的文本:
canvas.drawText(text, x, y, text);
问题是:文本在三个方面看起来有很大不同:图像大小、屏幕大小和屏幕dpi。因此,我正在尝试解决这些问题,以获得一个适合所有文本大小的文本大小。首先,我根据显示密度更新文本大小:
float density = getResources().getDisplayMetrics().density;
textSize = size * density;
然后,我使用stackOverFlow上的这个函数根据比率获得字体大小:
private double getFont(double sizefont, double fontBase, double sizecanvas) {
double ratio = sizefont / fontBase;
return sizecanvas * ratio;
}
我不确定这个函数是否正确。作为fontBase,我使用layout.getWidth,sizecanvas是位图(和画布lol)的大小,sizefont是我想要的字体。现在使用40
在大屏幕上,字体看起来确实很小而且模糊。在小型显示器(5英寸)上,它看起来不错
有人知道我该怎么做吗?我还在努力,我会让你们知道最新情况的
更新:
为了让事情更清楚:
字体大小为40,在同一屏幕中,因此,如果图像大小为800x800或1200 x 1200,则同一dpi的行为不同。我想要的是字体在我所有的图像和不同的设备上表现相同。谢谢 你解决过这个问题吗?@gman不太清楚。我已经停止了上述项目的工作,转而专注于另一个项目。如果你解决了,请让我知道:)