我无法深入了解android如何实现其@R_825_3419@ drawable.但我发现它很有趣,我几乎不知道为什么会这样.
这里有一些drawables:
九补丁xml
<?xml version="1.0" enCoding="utf-8"?><nine-patch xmlns:androID="http://schemas.androID.com/apk/res/androID"androID:src="@drawable/cam2tst_ripple_bg_img"></nine-patch>
形状xml
<?xml version="1.0" enCoding="utf-8"?><shape xmlns:androID="http://schemas.androID.com/apk/res/androID"><padding 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" /><solID androID:color="@androID:color/holo_green_dark" /></shape>
波纹xml
<?xml version="1.0" enCoding="utf-8"?><ripple xmlns:androID="http://schemas.androID.com/apk/res/androID"androID:color="@androID:color/holo_green_light"><item androID:drawable="@drawable/cam2tst_ripple_shape"></item></ripple>
<?xml version="1.0" enCoding="utf-8"?><@R_825_3419@ xmlns:androID="http://schemas.androID.com/apk/res/androID"><item androID:drawable="@drawable/cam2tst_ripple_bg_img" /><item androID:drawable="@drawable/cam2tst_ripple_base" /></@R_825_3419@>
不幸的是,我仍然无法在我的L预览中获得截图,但我可以对其进行描述.
我得到的是形状(我显然没有明确地设置它的大小)并没有覆盖整个九个补丁!九个补丁的未拉伸部分神奇地被认为是某种“自动填充物” “.我期待的是什么(好吧,我正在期待androID为我做了什么,我的意思是我……假设…)是不是那么积极的东西:不是特别大小的形状可绘制覆盖整个九-patch就像后者是正常的png一样.
但是这个形状确实神奇地避免了9个补丁的未拉伸部分,并且只覆盖了九个补丁的拉伸部分.
这太棒了……但令人困惑,为什么?我可能无法深入挖掘源,但这听起来反直觉(但很好).我想知道原因.所以我在这里发布.
因为我将其标记为androID-L,因为我正在开发一个.但我认为这应该是从像姜饼这样的东西.(只是用其他东西替换波纹可绘制,也许是插入抽屉等)
解决方法:
这种效果是由两件事的结合引起的:
>所有九个补丁抽屉都有一个从内容区域边缘自动定义的填充区域.内容区域可以使用边框处的右线和底线明确定义,也可以隐式地从左侧和顶部线定义的可伸展区域定义.
>图层列表默认情况下将每个图层上的填充累积应用于下一个图层*,有效地将每个图层视为上一图层的内容.
* Lollipop推出了一款新的attribute,用于禁用此行为.
总结以上是内存溢出为你收集整理的为什么Android图层列表可绘制如此智能?全部内容,希望文章能够帮你解决为什么Android图层列表可绘制如此智能?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)