Android之Drawable-NinePatchDrawable

注意:本篇文章是本人阅读相关文章所写下的总结,方便以后查阅,所有内容非原创,侵权删。

本篇文章内容来自于:
1.Android开发艺术探索 任玉刚
2.领略千变万化的Android Drawable (一)

目录

  1. NinePatchDrawable
    --4.1 什么是NinePatchDrawable
    --4.2 XML实现NinePatchDrawable(推荐用xml而不是代码实现NinepatchDrawable)

4. NinePatchDrawable

4.1 什么是NinePatchDrawable

表示的是一种.9格式的图片。.9图片可以自动的根据所需的宽高进行相应的缩放并保证不失真。

一般情况下不建议代码创建.9图,因为Android虽然可以使用Java代码创建NinePatchDrawable,但是极少情况会那么做,这是因为由于Android SDK会在编译工程时对点九图片进行编译,形成特殊格式的图片。使用代码创建NinePatchDrawable时只能针对编译过的点九图片资源,对于没有编译过的点九图片资源都当做BitmapDrawable对待。

还有点需要特别注意的是,点九图只能适用于拉伸的情况,对于压缩的情况并不适用,如果需要适配很多分辨率的屏幕时需要把点九图做的小一点

4.2 XML实现NinePatchDrawable

NinePatchDrawable XML属性


代码实现
第一步:创建.9文件:
将png文件放入drawable文件夹中,右键选择create nine-patch。则可实现将png文件变成.9文件

Android之Drawable-NinePatchDrawable_第1张图片

.9四条黑边的意义:

顶部:在水平拉伸的时候,保持其他位置不动,只在这个点的区域做无限的延伸(拷贝)
左边:在竖直拉伸的时候,保持其他位置不动,只在这个点的区域做无限的延伸(拷贝)
底部:在水平拉伸的时候,指定图片里的内容显示的区域
右边:在竖直拉伸的时候,指定图片里的内容显示的区域

第二步:创建NinepatchDrawable xml文件


Android之Drawable-NinePatchDrawable_第2张图片

Android之Drawable-NinePatchDrawable_第3张图片


第三步:代码引用

    

也可以直接引用.9资源

    

注:关于更多.9图片的内容参考Android中.9图片的含义及制作教程
如果报错.9不规范 可修改app/build.gradle的buildToolsVersion属性

  // 取消掉系统对.9图片的检查
  aaptOptions.cruncherEnabled = false
  aaptOptions.useNewCruncher = false

你可能感兴趣的:(Android之Drawable-NinePatchDrawable)