0

我有这个我认为正确的布局代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="64dip"
    android:background="@drawable/title_background">

    <ImageView
        android:layout_width="48dip"
        android:layout_height="48dip"
        android:layout_margin="8dip"
        android:src="@drawable/title_icon" />

    <ImageView
        android:layout_width="128dip"
        android:layout_height="32dip"
        android:layout_margin="16dip"
        android:src="@drawable/title_text" />

</LinearLayout>

LinearLayout 的高度为 64dip,第一个 ImageView 的高度为 48dip。根据我很久以前学到的数学知识,8dip 的边距将完美匹配。但它不是因为我的 ImageViews 被剪裁在底部。这是用于自定义标题栏,我已将 android:windowTitleSize 设置为匹配主题中的 64dip。

标题栏上是否有某种隐藏的填充?如果是这样,它的大小是多少?

4

2 回答 2

2

在用旧的方式测试它之后,我发现“未知”的填充是 8dip。如果这是一个固定值,我不知道。它与我的 48dip ImageView 完美匹配,因此以 0dip 的边距居中。第二个 ImageView 需要 8dip 的边距才能上下居中。

自定义标题栏文档非常罕见,所以就我现在所知。

编辑:

我为标题栏创建的背景图像是一个带有内容区域的 9 个补丁图像。这是“未知”的填充。总而言之 - 自定义标题栏没有隐藏的填充,但如果使用带有内容区域的 9 补丁背景图像,则填充将是该内容区域之外的内容。基本上一切都是因为它应该使用 9 个补丁图像作为背景......

于 2010-12-28T11:29:55.860 回答
0

试试这个:

<ImageView
        android:layout_width="48dip"
        android:layout_height="48dip"
        android:layout_margin="8dip"
        android:src="@drawable/title_icon"
        android:scaleType="center" 
        android:adjustViewBounds="true"/>

/>

于 2010-12-28T11:01:42.133 回答