web-dev-qa-db-ja.com

Androidレイアウトでテキスト間の行間隔を減らすにはどうすればよいですか?

添付レイアウトのテキスト(User12、5つのムービー、2.5%改善)の行間隔を狭くしたいと思います。

enter image description here

以下のxmlです(singleLine = "true"ステートメントを削除してfalseに設定しようとしました)。

<LinearLayout
  xmlns:Android="http://schemas.Android.com/apk/res/Android"
  Android:layout_width="fill_parent"
  Android:layout_height="?android:attr/listPreferredItemHeight"
  Android:orientation="horizontal" >

  <ImageView
    Android:id="@+id/icon"
    Android:src="@drawable/icon"
    Android:layout_width="36dip"
    Android:layout_height="36dip"
    Android:layout_margin="5dip"
    Android:scaleType="center"
    Android:layout_gravity="center_vertical" />

   <LinearLayout
    Android:orientation="vertical"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"
    Android:layout_weight="7.5">
    <TextView
        Android:id="@+id/scoreDesc"
        Android:text="User12"
        Android:layout_marginLeft="5dip"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:textAppearance="@Android:style/TextAppearance.Small"
        Android:singleLine="true"
        Android:ellipsize="Marquee"
        Android:layout_weight="1"
        Android:layout_gravity="center_vertical" />
    <TextView
        Android:id="@+id/scoreDesc"
        Android:text="5 movies"
        Android:layout_marginLeft="5dip"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:textAppearance="@Android:style/TextAppearance.Small"
        Android:singleLine="true"
        Android:ellipsize="Marquee"
        Android:layout_weight="1"
        Android:layout_gravity="center_vertical" />

    <TextView
        Android:id="@+id/scoreDesc"
        Android:text="2.5% improved"
        Android:layout_marginLeft="5dip"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:textAppearance="@Android:style/TextAppearance.Small"
        Android:singleLine="true"
        Android:ellipsize="Marquee"
        Android:layout_weight="1"
        Android:layout_gravity="center_vertical" />
  </LinearLayout>
  <TextView
    Android:id="@+id/scoreNum"
    Android:text="32"
    Android:layout_width="wrap_content"
    Android:layout_height="fill_parent"
    Android:gravity="center"
    Android:textSize="20sp"
    Android:textStyle="bold"
    Android:paddingLeft="10dip"
    Android:paddingRight="60dip"  
    />

</LinearLayout>
24
user836200

質問されてから長い時間が経過しましたが、将来的に誰かが答えを必要とする場合、負の値を渡すだけでこれを達成できます

Android:lineSpacingExtra="-4dp"
64
Cullan

この場合、lineSpacingMultiplierの設定は、lineSpacingExtraよりも優れているようです。

Android:lineSpacingMultiplier="0.8"

(これは、すべてのテキストがxmlに上記の行がある単一のTextViewにある場合に機能します。)

6
Tony Wickham

Cullanが前述したように、負のマージン値を入力する必要があります:

Android:layout_marginTop = "-10dp"

<TextView
    Android:id="@+id/scoreDesc"
    Android:text="User12"
    Android:layout_marginLeft="5dip"
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    Android:textAppearance="@Android:style/TextAppearance.Small"
    Android:singleLine="true"
    Android:ellipsize="Marquee"
    Android:layout_weight="1"
    Android:layout_gravity="center_vertical" />
<TextView
    Android:id="@+id/scoreDesc"
    Android:text="5 movies"
    Android:layout_marginLeft="5dip"
    Android:layout_marginTop="-10dp"
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    Android:textAppearance="@Android:style/TextAppearance.Small"
    Android:singleLine="true"
    Android:ellipsize="Marquee"
    Android:layout_weight="1"
    Android:layout_gravity="center_vertical" />

これが誰かを助けることを願っています。

5
Marco HC