绘制文本大小:适用于所有尺寸和图像的通用尺寸

时间:2015-07-22 01:41:51

标签: android android-canvas

所以我在这里遇到了一些问题:

我的应用使用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则表现不同。我想要的是在我的所有图像和不同设备上行为相同的字体。谢谢!

0 个答案:

没有答案