我有一个按钮。该按钮由 StateListDrawable(由 3 个 9-patch 图像组成)构成。我需要添加一个额外的drawable,它将驻留在按钮的右侧,并且我需要它与按钮的右侧对齐。我尝试使用以下内容:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/blue_back_button_drawable" />
<item>
<bitmap android:src="@drawable/filter_by_button_v_mark" android:gravity="right"/>
</item>
</layer-list>
它没有用,V 图像确实是正确对齐的,但它与按钮的右侧有差异。这是一个快照:
我希望图像与按钮的左侧对齐,现在我认为我能做到的唯一方法是:
- 继承按钮,在 onLayout 设置宽度后获取右边缘。
- 获取背景可绘制对象(layerDrawable)
- 计算按钮的宽度减去 v 图像的宽度,并将其设置为可绘制对象的左边距。
我不应该提到这听起来很可怕:-) 我希望有更好的方法。哦,它不是图像的一部分的原因是我需要知道它的宽度,这样我才能计算文本填充,这样它就不会被按钮的文本隐藏,而且它看起来不像 9 补丁那么好看。