我正在尝试使图像适合定义为9patch的整个聊天式气泡。因此,我将imageView定义为:

<ImageView
    android:id="@+id/img_content"
    android:layout_width="270dp"
    android:layout_height="200dp"
    android:adjustViewBounds="true"
    android:background="@drawable/bubble_right"
    android:cropToPadding="true"
    android:paddingRight="11dp"
    android:scaleType="centerCrop"
    android:src="@drawable/orange_fruit" />


但是它使用无效的填充生成以下结果:

android - 9patch作为背景换行内容-LMLPHP

但是,如果我手动将其他边距设置为0,则结果看起来正确:

android:paddingBottom="0dp"
android:paddingLeft="0dp"
android:paddingTop="0dp"


android - 9patch作为背景换行内容-LMLPHP

为什么需要手动将padding设置为0dp才能使其按预期工作?

编辑:

这是九个补丁:

android - 9patch作为背景换行内容-LMLPHP

最佳答案

感谢pskink的评论,该问题与九个补丁底部和右侧指南有关,这些指南定义了内容应存放的位置。

我修改了9patch,使其看起来像这样可以解决我的问题。不再需要定义填充:

android - 9patch作为背景换行内容-LMLPHP
我了解了9patch今天的工作原理:)。

07-27 17:00