所以我在这里遇到了一些问题:
我的应用使用paint:
将文本设置到图像视图画布textPaint = new Paint();
textPaint.setARGB(255, 255, 255, 255);
textPaint.setTypeface(memeType);
textPaint.setColor(defaultTextColor);
textPaint.setTextSize(textSize); //now 40
然后我只是从edittext中绘制文本:
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,在同一屏幕中,因此相同的dpi如果图像为800x800或1200 x 1200则表现不同。我想要的是在我的所有图像和不同设备上行为相同的字体。谢谢!