私はどういうわけかTextViewの高さを取得しようとしています(実際には、ListViewに収まらなければならないので、レンダリングする前に)。
でやってみました
Rect currentBounds = new Rect();
textview1.getPaint().getTextBounds(textview1.getText().toString(), 0,
textview1.length(), currentBounds);
String size = rect.height();
...しかし、私は常に高さの同じ数を取得します。テキストは常に同じ幅(ディスプレイの幅)になります。多分それはここでの問題ですか?
または、StaticLayoutを使用して試してみました。
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
StaticLayout measure = new StaticLayout(textview11.getText(), textview1.getPaint(),
width, Layout.Alignment.ALIGN_NORMAL, 1.0f, 1.0f, false);
でもここでも、どうやって対処したらいいのかわからない奇数が出てきます…どうやって変換しても上とは全然違います…
LinearLayoutの新しい高さの設定は、次の方法で行います。
LinearLayout layout = (LinearLayout)findViewById(R.id.ll);
LayoutParams params = layout.getLayoutParams();
params.height = height;
私の発言をフォローしていただければ幸いです。もっと明確にする必要がある場合は教えてください...
ありがとうございました!