特定の幅のキャンバスに 3 つの異なるユーザー入力を描画したい Android プロジェクトで作業しています。3 つの入力には、カスタマイズ可能なレイアウト/異なる印刷が必要です。タイトル、コンテンツ、連絡先データのテキスト レイアウトが異なる新聞のテキスト広告のようなものを考えてみてください。これまでのところ、このソリューションを使用して、改行などに関する入力をフォーマットしています。
現在、次のようになっています。
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() は両方とも例外をスローします。最初にセッターを使用した場合にのみ機能すると思います。
複数行の Textview の高さを取得する別の解決策を考えられる人はいますか?
よろしく、
クリス