自定义视图组上的九个补丁
我制作了一个九个补丁和一个自定义视图组,然后将该视图组的背景设置为九个补丁。
问题是:九个补丁忽略了“内容区域”设置。
那么:如何在自定义视图中正确使用九个补丁?
或者:
如何从九个补丁中获取内容区域,以便可以在 OnMeasure 和 OnLayout 数学中使用它?
I made a nine-patch, and a custom viewgroup, then I made the background of that viewgroup to be the nine-patch.
The problem is: The nine-patch is ignoring the "content area" settings.
So: How I use a nine-patch properly in a custom view?
OR:
How I grab the content area from the nine-patch so I can use it on the OnMeasure and OnLayout math?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
还可以在 NinePatchDrawable 上使用 boolean getPadding(Rect padding) 来获取内容的填充(您的内容 + 9patch 填充 = 总组大小)
Also use boolean getPadding(Rect padding) on the NinePatchDrawable to get the padding for the content (your content + 9patch padding = total group dize)
您可能需要通过重写其 onDraw 方法直接在 ViewGroup 上绘制对象:
You may need to draw the object directly on the ViewGroup by overriding its onDraw method:
在 onMeasure 中获取背景的填充以减少可用宽度(这是为了在网格中布局单元格):
对于 onLayout,应用填充:
Get the background's padding in your onMeasure to decrease the available width (this is for laying out cells in a grid):
And for onLayout, the padding is applied: