corner 属性实现原理:九宫格
什么是九宫格:http://blog.csdn.net/yanzhibo/article/details/8270266
经过仔细琢磨之后corner 属性的四个参数分别是
corner (ltW,ltH,rbW,rbH);
ltW:bkimage 左上角有水平像素,多少像素不被拉伸
ltH:bkimage 左上角有竖直像素,多少像素不被拉伸
rbW:bkimage 右下角有水平像素,多少像素不被拉伸
rbH:bkimage 右下角有竖直像素,多少像素不被拉伸
例如图片大小(400*600)
拉伸方向:斜对角拉伸(左上----右下) 直至与窗口对角重合(如果没有像素可以拉伸则保持原图大小 eg:corner (400,600,0,0) 或者corner (0,0,400,600))
如果从右上角横向拉伸,纵向不拉伸。所以横向不拉伸的像素为0,纵向不拉伸的像素等于Height 即: corner=‘0,600,0,0’
如果从右下角横向拉伸,纵向不拉伸。所以横向不拉伸的像素为0,纵向不拉伸的像素等于Height 即: corner=‘0,0,0,600’
例如Menu图片:前面30像素固定死不拉伸,后面拉升
原图:
拉伸后的效果图:
边框一个像素,所以需要+1
所以:右上角横向有30像素不拉伸,纵向1像素不拉伸,右下角横向1像素不拉伸,纵向1像素不拉伸:即corner=‘30,1,1,1’
当然为了更加防止边框附件的细微差异色我们可以稍微扩大一点 eg:corner=‘30,8,8,8’ 甚至可以是corner=‘40,9,10,9’ 或者更大,只要预留的拉升像素不为0就行。
对于不可拉升像素大于图片本身像素大小,没仔细研究,很麻烦,如果有谁发现了告知一下~!