最近学习使用android中的sharp元素,其中的corners属性令我甚是费解,在此记录下问题解决心得,以便查阅!
从网上找到一篇讲解sharp的文章,自认为写的非常详细 http://kofi1122.blog.51cto.com/2815761/521605, 观察其中sharp的corners节点的使用方法如下代码引用,照着尝试去做,结果令我很是困惑。
<corners
android:topRightRadius="5dp"
android:bottomLeftRadius="5dp"
android:topLeftRadius="0dp"
android:bottomRightRadius="0dp"
/>
android:topRightRadius="5dp"
android:bottomLeftRadius="5dp"
android:topLeftRadius="0dp"
android:bottomRightRadius="0dp"
/>
在android2.1的环境中使用如上代码,完全没有圆角,只有加上android:radius="5dp"才会出现圆角(不知道是不是android2.1的问题)。
其中 android:topLeftRadius="0dp" 和 android:bottomRightRadius="0dp"
是罪魁祸首, 不知道笔者为什么会写成0还贴出了效果图, 查了很多资料才知道, 这个值不能设0 ,设为1dp后, 所有圆角效果就出现了。
郁闷的就是为什么设0不起作用呢, 如果想做部分直角,部分圆角效果根本无法完成, 有个办法是将1dp设成1px就可以以假乱真了,不要设1dp(设1dp圆角还是很明显的),不知道这算不算android系统的bug...
<corners
android:topRightRadius="5dp"
android:bottomLeftRadius="5dp"
android:topLeftRadius="1px"
android:bottomRightRadius="1px"
/>
android:topRightRadius="5dp"
android:bottomLeftRadius="5dp"
android:topLeftRadius="1px"
android:bottomRightRadius="1px"
/>