我想大多数程序员都喜欢用代码解决问题。原因如下:
- 用代码更加cool。
- 我美工不行,我会说出去吗?
OK,好东西在这里。
2.1 基本的圆角、边框
Android除了支持原始的图片资源外,比较棒的一点就是可以用XML文件定义一些简单的图形。这有点像web的CSS,不过相比 CSS3,Android的xml实现还没那么强大,例如,边框要么四周都有,要么四周都没有(我们将在后面讨论这事)。
要画一个带灰色边框和圆角的图形很容易,在drawable资源目录下添加一个xml:
在你需要用到这东西的地方如某个View下,设置background就行了。
2.2 “自由的边框“
当前版本的Android SDK并没有给stroke提供bottom、left、right之类的属性,也就是说你无法通过它来让长方形的边框少于4条。啊,真是太遗憾了。怎么办呢?有人想到了对 hack。 在StackOverflow上有不少这样的。
为了实现只有left,right和top边框,我们可以这么写:
原理差不多是这样:
诡异的是理论上只要偏移量只要1dp就能显示1dp宽带边框了,但我在listview里实验了一下发现不行,换成2dp方可。有同学能解释解释么?
如果要给图形加上圆角,只需要给每个shape加上
值得注意的是,两个shape的radius在设置的时候请确保前面的图层不会把后面的挡住。