如何设置正确的边距

时间:2010-12-27 21:23:54

标签: android layout coding-style custom-titlebar

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

<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。

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

2 个答案:

答案 0 :(得分:2)

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

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

编辑:

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

答案 1 :(得分: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"/>

/&GT;