我有这个布局代码,我认为是正确的:
<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。
标题栏上是否有某种隐藏的填充?如果是这样,它的大小是多少?
答案 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;