LinearLayout - 图像是否拉伸但文本也居中?

时间:2014-02-26 01:02:01

标签: android image listview layout textview

我正在尝试通过添加Google Cards的变体来自定义我的设置应用。我的列表项左侧有图像,右侧是文本。现在我面临的问题是我的图像被完全拉伸到我想要的高度和宽度,但随后我的文本视图也会拉伸并对齐,现在位于图像旁边的顶角。我希望图像和文本之间存在差距,我希望文本居中而不是位于左上角。这是我的layout.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:minHeight="48dp"
android:theme="@style/Theme.Settings.Main"
android:background="@drawable/background_list_view"
android:divider="@color/list_divider"
android:dividerHeight="@dimen/list_divider"
android:gravity="fill"
android:paddingEnd="?android:attr/scrollbarSize">

<LinearLayout
    android:id="@+id/title"
    android:layout_width="wrap_content"
    android:layout_marginStart="0dip"
    android:layout_marginEnd="0dip"
    android:layout_marginLeft="3dip"
    android:layout_height="wrap_content">
    <ImageView
        android:id="@+id/icon"
        android:layout_width="@dimen/header_icon_width"
        android:layout_height="@dimen/header_icon_width"
        android:layout_gravity="fill" />
</LinearLayout>

我的background_list_view.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
     android:state_focused="true"
     android:state_pressed="true"
     android:drawable="@drawable/list_longpressed_holo_light" />
<item
    android:state_focused="true"
    android:state_pressed="false"
    android:drawable="@drawable/list_focused_holo" />
<item
    android:state_focused="false"
    android:state_pressed="true"
    android:drawable="@drawable/list_pressed_holo_light" />
<item
    android:drawable="@drawable/list_normal_holo_light" />

以下是我目前的截图:

正如你所看到的那样,文字位于图像附近的顶部,我想要的是它们之间有点差距,可以将它分开,也可以在中心。

1 个答案:

答案 0 :(得分:0)

这基本上是你的第一个布局,应该很棒。否则,请告诉我出了什么问题。

<LinearLayout
    android:id="@+id/title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginEnd="0dip"
    android:layout_marginLeft="3dip"
    android:layout_marginStart="0dip" >

    <ImageView
        android:id="@+id/icon"
        android:layout_width="@dimen/header_icon_width"
        android:layout_height="@dimen/header_icon_width"
        android:layout_gravity="fill" />

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginLeft="10dp" />
</LinearLayout>