Optical Bounds 9-patch禁用内容填充

时间:2014-08-11 08:36:17

标签: android android-layout

似乎在父布局上设置 layoutMode =“opticalBounds”将禁用9-Patch内容区域。下面的截图是一个简单的TextView:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
             android:orientation="vertical"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             android:paddingLeft="20dp"
             android:paddingTop="20dp">

    <TextView
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:background="@drawable/shadow_with_stroke_gray"
        android:text="lorem ipsum etc"
        android:padding="0dp"
        />
</FrameLayout>

而左边的FrameLayout将 layoutMode 设置为默认值( clipBounds ),将右侧设置为 opticalBounds

9-patch PNG也附在这篇文章上。

此案例的正确行为是什么?

TextView paddings gone

正在使用9补丁图片:

enter image description here

根据评论员的建议更新了9-Patch图片:

Updated 9-Patch image

更新了SDK

的官方文件

使用SDL中的9-patch图像(samples / android-20 / legacy / ApiDemos / res / drawable-mdpi / btn_default_normal.9.png),结果如下所示:

Using SDK file

SDK文件(由我添加的光学边界的红色标记):

9-Patch from SDK

问题仍然存在,内容区域没有被考虑在内,文字不应该划过边界。

1 个答案:

答案 0 :(得分:2)

删除了android:padding="0dp",填充正确。