2013-01-15 57 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

例如,這三種方法開始發送設置尺寸的矩形以填充文本。矩形的初始大小可以通過調用底部的兩個方法來創建尺寸來適應文本。在這裏評論,我可以進一步擴大。