0

我正在一个 Android 项目中工作,我想在给定宽度的画布上绘制三个不同的用户输入。这三个输入应具有可定制的布局/不同的打印。想一想报纸上的文字广告,其中标题、内容和联系数据有不同的文字布局。到目前为止,我使用解决方案来格式化有关换行符等的输入。

现在它看起来像这样:
TextView tv_title = new TextView(this);
tv_title.setText(titleText);
tv_title.setDrawingCacheEnabled(true);
tv_title.setWidth(advert_width);
advert_height = tv_title.getMinimumHeight();

Canvas canvas = new Canvas();
Bitmap b =Bitmap.createBitmap(advert_width,advert_height, Bitmap.Config.ARGB_8888);
canvas.setBitmap(b);
Paint backgroundPaint = new Paint();
backgroundPaint.setColor(Color.WHITE);
canvas.drawPaint(backgroundPaint);

我认为这会将位图的大小完全调整为 TextView 所需的高度,这样我就可以保存每个“Text-Bitmap”的高度并将它们绘制在另一个画布上。
不幸的是,TextView.getMinHeight() 和 View.getMinimumHeight() 都抛出一个异常,我想它们只有在你首先使用 Setter 时才有效。

谁能想到另一种解决方案如何获得多行 Textview 的高度?

最好的问候,
克里斯

4

1 回答 1

0

我建议您参考我在此处找到的答案并扩展您的特定需求。 https://stackoverflow.com/a/15092729/1759409

例如,这三种方法首先发送一个设置尺寸的矩形来填充文本。矩形的初始大小可以通过调用底部的两个方法来创建适合文本的尺寸来计算。在这里发表评论,我可以进一步扩展。

于 2013-02-27T09:48:23.107 回答