非典型的NinePatch使用模式
Android程序员对NinePatch文件一定很熟悉,因为它的应用实在是太广泛了,当图像需要拉伸或收缩时,一定会首先考虑到它,而由于Android设备那五花八门的分辨率,图像的拉伸收缩几乎是不可避免的....
Google已经为我们安排好了一个简单有效的NinePatch使用模式:
- 创建图像文件使用sdk/tools/draw9patch工具,选择图像的拉伸收缩区域,以及内容显示区域(可选)将draw9patch生成的*.9.png文件复制到res/drawable目录中在UI文件或者程序代码中,直接使用文件对应的Drawable
- (同上)创建图像文件(同上)使用sdk/tools/draw9patch工具,选择图像的拉伸收缩区域,以及内容显示区域(可选)
将draw9patch生成的*.9.png编译为Android特有的格式(还是可正常显示的png文件,但是将draw9patch中生成的上下左右4条边裁掉了,相关信息生成chunk数据嵌入png文件中)使用BitmapFactory载入编译后的NinePatch图像文件,获得Bitmap对象bmp确认Bitmap是合法的NinePatch文件:NinePatch.isNinePatchChunk(bmp.getNinePatchChunk())生成NinePatchDrawable对象:new NinePatchDrawable(getResources(), bmp, chunk, new Rect(), null);