6

フォントが何であれ、テキストを完全に中央揃えにするカスタム TextView を作成できるかどうかを知りたかったのです。それが今の私の主要な問題ですが、ピクセルを使用して特定の高さを設定して、高さも一貫させることができるかどうかも疑問に思っています。 文字フォントの比較 この図は、さまざまなフォントのサイズと中央揃えを示しています。写真の一番長い黒い線は白いスペースの真ん中です。写真の文字は、フォント以外はすべて同じです。テキストのサイズは同じ ( text.setTextSize(TypedValue.COMPLEX_UNIT_PX, 450);) で、すべて中央に配置されています。誰かがこれらの質問に対する答えを知っていることを願っています! 私のアプリからコードが必要な場合は、お尋ねください。ありがとう!

編集:私は知っていますがandroid:gravity="veritcal_center"、それはある程度しか機能しません。上に表示されているのは で実装されているものtextviewですが、各フォントの重心は異なるためandroid:gravity="veritcal_center"、これらすべてが画面に沿って完全に中央に配置されるわけではありません。textViewテキストの高さを何らかの方法で測定し、それらのパラメーターで中央に配置するカスタムを作成する方法を探しています。コメントの @vmironov による提案は機能しますが、textview文字が 1 つの場合のみです。私は彼のコードをいじることはできませんでしたが、機会があればやります。何か見つけたらここに投稿します。ありがとう!

4

3 に答える 3

2

目的を達成する簡単な方法は、次のコードを使用することです。

<LinearLayout 
        android:layout_width="100dp"
        android:layout_height="20dp"
        android:gravity="center">

        <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="18sp"
                android:text="@string/your_text" />
</LinearLayout>

テキストを一定の高さと幅の中央に配置するように設定する場合は、LinearLayout の高さと幅の値を固定に設定します。

于 2013-01-09T09:24:56.270 に答える
0

ビューの重力を「center_vertical」に設定します。何かのようなもの :

android:gravity="center_vertical"
于 2013-01-17T17:25:06.210 に答える
-1

含まれているTextViewにgravity属性を適用することで、テキストを中央に配置できるはずです。

XMLでは、TextViewに属性を割り当てます。これは次のようになります。

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:textSize="18sp"
        android:textAppearance="?android:attr/textAppearanceMedium" 
        android:text="@string/some_text" />

テキストに特定のサイズを指定する場合は、測定単位としてピクセルではなくSP(スケーリングされたピクセル)を使用することを強くお勧めします。TextViewの外観属性を設定してサイズを制御することもできます。これはコード例にも示されています。

于 2013-01-09T00:59:07.867 に答える