this questionのコードをコピーしたところ、ほぼ完全に機能していましたが、著者がリスト項目の高さを固定値に設定していて、デバイスに正しく表示されません。Androidの - 高さを測定する
コードは150にリスト項目の高さを設定し、私は「ねえ、私はちょうど私のテキストの高さを測定するだろう」と思ったので、私は少しあるテキストの
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.LINEAR_TEXT_FLAG);
Rect bounds = new Rect();
paint.getTextBounds("April 3, 2016", 0, 13, bounds);
Log.d("Fragment.toggle", "Text height is " + bounds.height());
とを呼び出します150固定値より大きい場合、getTextBounds()から返されるテキストの高さは12です.12は150より少し大きいので、私は明らかに何か間違ったことをしました。
私は人生で多くのソフトウェアを書いたことがありますが、これはAndroid開発を始めた私の最初の日です。だから私はおそらく明らかに愚かなことをしています。私は、2つの値(150と12)が異なる単位であると思われますが、私はドキュメントを掘り下げていて、それを理解することはできません。
どのようにAbsListView.LayoutParamsが期待している単位でテキストの高さを計算できますか?
この特定の呼び出しでPaintオブジェクトが何を返すと思いますか?私はあなたが何かが明らかに間違っているとどのように考えているのか分かりません。 –
テキストを表示するにはTextViewを使用し、テキストサイズをsp(スケーリングされたピクセル)に設定すると、Androidは他のすべてを行います。 – ElDuderino
みんなに飛び乗ってくれてありがとう、問題は私が質問する方法がわからないAndroidの初心者で十分だということです。 「この質問」へのリンクをたどってみると、別のStackOverflowページの「AndroidのListViewでどのようにセルを拡大/縮小することができますか?」というタイトルが付けられています。それは、リストアイテムの高さ(150などの数値)の値をハードコーディングしています。ハードコーディングする代わりにそれらの値を計算したいのです。 –