2013-01-15 61 views
0

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

现在它看起来像这样输入:
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,以便我可以保存每个“文本位图”的高度并在另一个画布上绘制它们。
不幸的是,TextView.getMinHeight()和View.getMinimumHeight()都抛出一个异常,我猜他们只有在你先使用Setter时才能工作。

任何人都可以想到另一种解决方案如何获得多行Textview的高度?

最好的问候,
克里斯

回答

0

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

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