.9图片的加工
Android的SDK自带了.9图片的加工工具,路径是SDK安装目录下的sdk\tools\draw9patch.bat,运行该程序就会呈现工具界面。把需要加工的png图片拖到该工具界面上,图片便加载到工具处理画面
左边窗口是图片加工区域,右边窗口是图片预览区域,从上到下依次是纵向拉伸预览、横向拉伸预览、未拉伸预览。
在左边窗口图片四周的马赛克处,单击即出现一个黑点,然后把黑点左右或上下拖动,就会拖出一段黑线,不同方向上的黑线表示不同的处理效果。
.9图片的四个属性
上方的黑线,指的是水平方向的拉伸区域。水平方向拉伸图片时,只有黑线区域内的图像会被拉伸,黑线两边的图像保持原状,这保证了左右两边的边框厚度不变。左方的黑线,指的是垂直方向的拉伸区域。垂直方向拉伸图片时,只有黑线区域内的图像会被拉伸,黑线两边的图像保持原状,这保证了上下两边的边框厚度不变。
下方的黑线,指的是该图片作为控件背景时,控件内部的文字左右边界只能放在黑线区域内。这里Horizontal Padding的效果就相当于android:paddingLeft与android:paddingRight。
右方的黑线,指的是该图片作为控件背景时,控件内部的文字上下边界只能放在黑线区域内。这里Vertical Padding的效果就相当于android:paddingTop与android:paddingBottom。
在实际开发中,前两个属性使用的比较多,因为很多场景都要求图片拉伸要保真。后两个属性,一般用的不多,但若是不知道,遇到问题还挺麻烦的。博主以前接手别人的项目时,就看到一个页面的文字总是与顶端有段距离,不管我怎么折腾xml和代码,都不管用。后来在高人的指点下,才想起来检查该页面的背景图片,结果用draw9patch.bat打开背景图,一下就发现该图片是不折不扣的.9图片,原来在水平和垂直方向上都设置了padding,这才解决了一大困惑。