Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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 获取渲染文本高度,该高度相当于使用paint.measureText渲染的文本宽度_Android - Fatal编程技术网

Android 获取渲染文本高度,该高度相当于使用paint.measureText渲染的文本宽度

Android 获取渲染文本高度,该高度相当于使用paint.measureText渲染的文本宽度,android,Android,我有以下代码来绘制文本 protected void onDraw(Canvas canvas) { super.onDraw(canvas); Paint paint = new Paint(); paint.setTextSize(400); paint.setColor(Color.WHITE); paint.setAntiAlias(true); paint.setTextAlign(Align.LEFT); paint.setS

我有以下代码来绘制文本

protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    Paint paint = new Paint();
    paint.setTextSize(400);
    paint.setColor(Color.WHITE);
    paint.setAntiAlias(true);
    paint.setTextAlign(Align.LEFT);
    paint.setStyle(Style.FILL);
    String text = "698";
    Rect bounds = new Rect();
    paint.getTextBounds(text, 0, text.length(), bounds);

    int textWidth = bounds.width();        
    int textHeight = bounds.height();

    Bitmap originalBitmap = Bitmap.createBitmap(textWidth,
            textHeight, Bitmap.Config.ARGB_8888);
    Canvas singleUseCanvas = new Canvas(originalBitmap); 
    singleUseCanvas.drawColor(Color.BLUE);
    singleUseCanvas.drawText(text, 0, textHeight, paint);
    canvas.drawBitmap(originalBitmap, 0, 0, null);
}
我得到了不想要的结果,它的右边和下面都被剪掉了

我通过使用

float textWidth = paint.measureText(text);
Bitmap originalBitmap = Bitmap.createBitmap((int)(textWidth + 0.5),
                textHeight, Bitmap.Config.ARGB_8888);
我有以下的进步


然而。我的屁股还在被剪。我想知道获得渲染文本高度的正确方法是什么,这类似于使用paint.measureText渲染文本宽度?

我想我应该看看这篇文章: 它对渲染文本的大小以及您关心的文本高度进行了很好的调查