Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 绘制文字尺寸:所有尺寸和图像的通用尺寸_Android_Android Canvas - Fatal编程技术网

Android 绘制文字尺寸:所有尺寸和图像的通用尺寸

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

所以我这里有点问题:

我的应用程序使用paint将文本设置为图像视图画布:

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不太清楚。我已经停止了上述项目的工作,转而专注于另一个项目。如果你解决了,请让我知道:)