android 图层,为什么Android图层列表可绘制如此智能?

我无法深入了解android如何实现其layer-list drawable.但我发现它很有趣,我几乎不知道为什么会这样.

这里有一些drawables:

九补丁xml

android:src="@drawable/cam2tst_ripple_bg_img">

形状xml

android:left="@dimen/cam2tst_ripple_horizontal_padding"

android:top="@dimen/cam2tst_ripple_vertical_padding"

android:right="@dimen/cam2tst_ripple_horizontal_padding"

android:bottom="@dimen/cam2tst_ripple_vertical_padding" />

波纹xml

android:color="@android:color/holo_green_light">

包含以上所有内容的图层列表

不幸的是,我仍然无法在我的L预览中获得截图,但我可以对其进行描述.

我得到的是形状(我显然没有明确地设置它的大小)并没有覆盖整个九个补丁!九个补丁的未拉伸部分神奇地被认为是某种“自动填充物” “.我期待的是什么(好吧,我正在期待android为我做了什么,我的意思是我……假设…)是不是那么积极的东西:不是特别大小的形状可绘制覆盖整个九-patch就像后者是正常的png一样.

但是这个形状确实神奇地避免了9个补丁的未拉伸部分,并且只覆盖了九个补丁的拉伸部分.

这太棒了……但令人困惑,为什么?我可能无法深入挖掘源,但这听起来反直觉(但很好).我想知道原因.所以我在这里发布.

因为我将其标记为android-L,因为我正在开发一个.但我认为这应该是从像姜饼这样的东西.(只是用其他东西替换波纹可绘制,也许是插入抽屉等)

解决方法:

这种效果是由两件事的结合引起的:

>所有九个补丁抽屉都有一个从内容区域边缘自动定义的填充区域.内容区域可以使用边框处的右线和底线明确定义,也可以隐式地从左侧和顶部线定义的可伸展区域定义.

>图层列表默认情况下将每个图层上的填充累积应用于下一个图层*,有效地将每个图层视为上一图层的内容.

* Lollipop推出了一款新的attribute,用于禁用此行为.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值