2012-07-20 1 views
11

TextViewを使用して、行間隔を1.0より小さくしたい、つまり、行間のデフォルトの間隔よりも小さくなるようにします。私はこれをやった:TextView lineSpacingMultiplier最終段のチョップが0より小さい

<TextView 
    android:id="@+id/text_header" 
    android:layout_width="@dimen/text_header_width" 
    android:layout_height="wrap_content" 
    android:text="@string/header_text" 
    android:textSize="@dimen/text_header_text_size" 
    android:typeface="helvetica" 
    android:lineSpacingMultiplier="0.95" /> 

をしかし、一番下の行のテキストでは、ディセンダ(例えば、Yさん、Gさん、そしてpの)は、わずかに切り落とされています。言い換えれば、それらの文字の下に約2または3ピクセルの価値があります。

私はマージンとパディングを試してみましたが、成功しませんでした。私は、wrap_contentの代わりに指定された高さ(少し余分な部屋を使って)を使って問題を解決できるようですが、可能ならばそれを避けたいと思います。

答えて

-2

あなたのxmlからtextView.setLineSpacing()

または

は私はそれがAPI 21 I下記のアンドロイドのバージョンでの問題のように見えるのテストからandroid:lineSpacingExtra="xxdp"

+0

これは機能する場合があります。しかし、私が欲しいものではない - 私はフォントサイズのパーセンテージとして、dp値としてではなく、間隔を変えたいと思う。私はそれを試してみましょう。 – parkerfath

+0

これは、既存の行スペースの上に追加のスペースを追加し、1の乗数と負の余分な値を使用すると、前と同じようにテキストがカットオフされるため、期待どおりに機能しません... –

0

を使用してコードの使用からこの

をお試しください

私の場合、私はを使用していますは、最後に省略記号を付けて最大2行あります。

API 21の前に私のTextViewのスタイルの私TextView API 21用と後用(values/style.xml

<style name="MyTextViewStyle" parent="Base.TextAppearance.AppCompat"> 
    <item name="android:layout_width">match_parent</item> 
    <item name="android:layout_height">wrap_content</item> 
    <item name="android:gravity">left</item> 
    <item name="android:textColor">@color/blue_dark</item> 
    <item name="android:textSize">16sp</item> 
    <item name="android:maxLines">2</item> 
    <item name="android:ellipsize">end</item> 
    <item name="android:lineSpacingExtra">-4dp</item> 
    <item name="android:paddingTop">0dp</item> 
    <item name="android:paddingBottom">4dp</item> 
    <item name="android:includeFontPadding">false</item> 
</style> 

スタイル(values-v21/style.xml

<style name="MyTextViewStyle" parent="Base.TextAppearance.AppCompat"> 
    <item name="android:layout_width">match_parent</item> 
    <item name="android:layout_height">wrap_content</item> 
    <item name="android:gravity">left</item> 
    <item name="android:textColor">@color/blue_dark</item> 
    <item name="android:textSize">16sp</item> 
    <item name="android:maxLines">2</item> 
    <item name="android:ellipsize">end</item> 
    <item name="android:lineSpacingExtra">-4dp</item> 
    <item name="android:paddingTop">0dp</item> 
    <item name="android:paddingBottom">0dp</item> 
    <item name="android:includeFontPadding">true</item> 
</style> 

ここに秘密が反対である主android:paddingBottomです私のデバイス上では、最後の行のバグを一番下に細かく修正しています。

注:<item name="android:lineSpacingExtra">-4dp</item>は、<item name="android:lineSpacingMultiplier">0.8</item>と同じようです。

関連する問題